const_iterator - iterator

const_iterator - iterator

1. begin / end - cbegin / cend

std::map::begin
Return iterator to beginning.
Returns an iterator referring to the first element in the map container.

std::map::end
Return iterator to end.
Returns an iterator referring to the past-the-end element in the map container.

std::map::cbegin
Return const_iterator to beginning.
Returns a const_iterator pointing to the first element in the container.

std::map::cend
Return const_iterator to end.
Returns a const_iterator pointing to the past-the-end element in the container.

2. iterator

//============================================================================
// Name        : main.cpp
// Author      : Yongqiang Cheng
// Version     : Version 2.0.0
// Copyright   : Copyright (c) 2020
// Description : smooth_module in C++, Ansi-style
//============================================================================

#include <iostream>
#include "smooth_module.hpp"

using namespace std;

void average_update(
		map<int, vector<float> > feature_average,
		map<int, vector<float> > &average_data)
{
	// AVERAGE: map<int=track_id, vector<float> {feature_data}> feature_average
	// AVERAGE: map<int=track_id, vector<float> {average_feature_data, hit_number}> average_data

	int track_id = 0;
	vector<float> feature_data;

	for (map<int, vector<float> >::iterator it = feature_average.begin(); it != feature_average.end(); ++it)
	{
		track_id = it->first;
		feature_data = it->second;
	}

}

int main()
{
	cout << "!!!OK!!!" << endl; // prints !!!OK!!!
	return 0;
}

!!!OK!!!

3. const_iterator

//============================================================================
// Name        : main.cpp
// Author      : Yongqiang Cheng
// Version     : Version 2.0.0
// Copyright   : Copyright (c) 2020
// Description : smooth_module in C++, Ansi-style
//============================================================================

#include <iostream>
#include "smooth_module.hpp"

using namespace std;

void average_update(
		const map<int, vector<float> > feature_average,
		map<int, vector<float> > &average_data)
{
	// AVERAGE: map<int=track_id, vector<float> {feature_data}> feature_average
	// AVERAGE: map<int=track_id, vector<float> {average_feature_data, hit_number}> average_data

	int track_id = 0;
	vector<float> feature_data;

	for (map<int, vector<float> >::iterator it = feature_average.begin(); it != feature_average.end(); ++it)
	{
		track_id = it->first;
		feature_data = it->second;
	}

}

int main()
{
	cout << "!!!OK!!!" << endl; // prints !!!OK!!!
	return 0;
}

12:15:38 **** Incremental Build of configuration Debug for project SmoothModule ****
make all 
Building file: ../src/main.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/main.d" -MT"src/main.o" -o "src/main.o" "../src/main.cpp"
In file included from ../src/main.cpp:10:0:
../src/smooth_module.hpp: In member function ‘void SmoothModule::average_update(std::map<int, std::vector<float> >, std::map<int, std::vector<float> >&)’:
../src/smooth_module.hpp:28:7: warning: variable ‘track_id’ set but not used [-Wunused-but-set-variable]
   int track_id = 0;
       ^
../src/smooth_module.hpp:32:7: warning: unused variable ‘detect_id’ [-Wunused-variable]
   int detect_id = 0;
       ^
../src/smooth_module.hpp:34:7: warning: unused variable ‘average_feature_data’ [-Wunused-variable]
   int average_feature_data = 0;
       ^
../src/smooth_module.hpp:35:7: warning: unused variable ‘hit_num’ [-Wunused-variable]
   int hit_num = 0;
       ^
../src/main.cpp: In function ‘void average_update(std::map<int, std::vector<float> >, std::map<int, std::vector<float> >&)’:
../src/main.cpp:24:68: error: conversion from ‘std::map<int, std::vector<float> >::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const int, std::vector<float> > >}’ to non-scalar type ‘std::map<int, std::vector<float> >::iterator {aka std::_Rb_tree_iterator<std::pair<const int, std::vector<float> > >}’ requested
  for (map<int, vector<float> >::iterator it = feature_average.begin(); it != feature_average.end(); ++it)
                                                                    ^
src/subdir.mk:21: recipe for target 'src/main.o' failed
make: *** [src/main.o] Error 1

12:15:39 Build Finished (took 571ms)
//============================================================================
// Name        : main.cpp
// Author      : Yongqiang Cheng
// Version     : Version 2.0.0
// Copyright   : Copyright (c) 2020
// Description : smooth_module in C++, Ansi-style
//============================================================================

#include <iostream>
#include "smooth_module.hpp"

using namespace std;

void average_update(
		const map<int, vector<float> > feature_average,
		map<int, vector<float> > &average_data)
{
	// AVERAGE: map<int=track_id, vector<float> {feature_data}> feature_average
	// AVERAGE: map<int=track_id, vector<float> {average_feature_data, hit_number}> average_data

	int track_id = 0;
	vector<float> feature_data;

	for (map<int, vector<float> >::const_iterator  it = feature_average.begin(); it != feature_average.end(); ++it)
	{
		track_id = it->first;
		feature_data = it->second;
	}

}

int main()
{
	cout << "!!!OK!!!" << endl; // prints !!!OK!!!
	return 0;
}

!!!OK!!!

发布了444 篇原创文章 · 获赞 1686 · 访问量 101万+

猜你喜欢

转载自blog.csdn.net/chengyq116/article/details/104340459