#include <iostream>
#include <vector>
using namespace std;
template <typename T>
void Reverse (vector<T> &v) {
vector<T> temp;
if (v.empty()) {
temp = v;
} else {
for (vector<T>::reverse_iterator rit = v.rbegin(); rit != v.rend(); rit++) {
temp.push_back(*rit);
}
}
v = temp;
}
int main () {
vector<int> v;
for (int i = 0; i < 5; i++) {
v.push_back(i);
}
Reverse<int> (v);
return 0;
}
小弟使用code:blocks下的gcc编译报出错误
11: error: expected ';' before 'rit'
11: error: 'rit' was not declared in this scope
:11: error: dependent-name 'std::vector::reverse_iterator' is parsed as a non-type, but instantiation yields a type
------解决方案--------------------------------------------------------
typename vector<T>::reverse_iterator rit ...试试