Мое заявление об отказе от ответственности заключается в том, что я начал преподавать C++ около недели назад, и мой прежний опыт программирования был с динамическими языками (Python, javascript).C++ Template + Iterator (noob question)
Я пытаюсь перебирать, хотя содержимое вектора с использованием обобщенной функции для вывода элементов:
#include <iostream>
#include <algorithm>
#include <vector>
using std::vector;
using std::cout;
template <class T>
void p(T x){
cout << x;
}
int main() {
vector<int> myV;
for(int i = 0; i < 10; i++){
myV.push_back(i);
}
vector<int>::const_iterator iter = myV.begin();
for_each(iter, myV.end(), p);
return 0;
}
код не компилируется. Кто-нибудь объяснит, почему?
Edit: Ошибка компилятора:
error: no matching function for call to 'for_each(_gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<const int, _gnu_norm::vector<int, std::allocator<int> > >, __gnu_debug_def::vector<int, std::allocator<int> > >&, __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<int, __gnu_norm::vector<int, std::allocator<int> > >, __gnu_debug_def::vector<int, std::allocator<int> > >, <unknown type>)'
Спасибо!
Что компилятор вы получаете? –