【发布时间】:2011-05-06 05:19:05
【问题描述】:
代码 A:
vector< int >::const_reverse_iterator rcit;
vector< int >::const_reverse_iterator tit=v.rend();
for(rcit = v.rbegin(); rcit != tit; ++rcit)
cout << *rcit << " ";
代码 B:
vector< int >::const_reverse_iterator rcit;
for(rcit = v.rbegin(); rcit != v.rend(); ++rcit)
cout << *rcit << " ";
CODE A 工作正常,但 CODE B为什么会报错:
DEV C++\vector_test.cpp 在 'rcit != std::vector<_tp _alloc>::rend() 中不匹配 'operator!=' with _Tp = int, _Alloc = std::allocator '。
这是我正在尝试编写的程序。
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
using namespace std;
#include <vector>
using std::vector;
template< typename T > void printVector( const vector< T > &v);
template< typename T >
void printVector( const vector< T > &v)
{
typename vector< T >::const_iterator cit;
for(cit = v.begin(); cit != v.end(); ++cit)
cout << *cit << " ";
}
int main()
{
int number;
vector< int > v;
cout << "Initial size of the vector : " << v.size()
<< " and capacity : " << v.capacity() << endl;
for(int i=0; i < 3; i++)
{
cout << "Enter number : ";
cin >> number;
v.push_back(number);
}
cout << "Now size of the vector : " << v.size()
<< "and capacity : " << v.capacity() << endl;
cout << "output vector using iterator notation " << endl;
printVector(v);
cout << "Reverse of output ";
vector< int >::const_reverse_iterator rcit;
for(rcit = v.rbegin(); v.rend() != rcit ; ++rcit)
cout << *rcit << " ";
cin.ignore(numeric_limits< streamsize >::max(), '\n');
cin.get();
return 0;
}
【问题讨论】:
-
发布更多代码...您发布的代码不是问题...
-
你的代码在 windows 上使用 mingw 编译得很好
-
嗯,谢谢,@Vusak 这可能是我的 DevC++ 编译器...嗯
-
@munish 是的,我刚刚在使用 DevC++ 时遇到了同样的错误。感谢您在这里提出的问题,我很快就找到了解决方法!
-
这可以通过 Android NDK 编译器修订版 9(可能还有更早的版本)重现