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!!!