关于vector的end()问题
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> x(10);
for(vector<int>::iterator i=x.end()-1;i!=x.begin();i--)
{
*i=42;
}
for(int i=0;i<10;i++)
{
cout<<x[i]<<" ";
if((i+1)%6==0)
cout<<endl;
}
return 0;
}
#include <vector>
using namespace std;
int main()
{
vector<int> x(10);
for(vector<int>::iterator i=x.end()-1;i!=x.begin();i--)
{
*i=42;
}
for(int i=0;i<10;i++)
{
cout<<x[i]<<" ";
if((i+1)%6==0)
cout<<endl;
}
return 0;
}
输出结果 0 42 42 42 42 42
42 42 42 42;
for(vector<int>::iterator i=x.end()-1;i!=x.begin();i--)
为什么第一个元素为0,end()不是指向最后一个元素的末端吗?end()-1应该就是指向最后一个元素了啊?
请各位解答下,谢谢!!