关于vector里面的vector.end()的返回值

#include <vector>
#include <algorithm>
#include <iostream>

using namespace std;

int main()
{
vector<int> test_int;
for(int i=1;i<=3;i++)
{
test_int.push_back(i);
test_int.push_back(i);
test_int.push_back(i);   
} //111 222 333
pair<vector<int>::iterator,vector<int>::iterator> bound_by_two;
bound_by_two=equal_range(test_int.begin(),test_int.end(),2); 
cout<<"before sort,tail of bound by two is: "<<*bound_by_two.second<<endl;
bool myfunction (int i,int j);
sort(test_int.begin(),test_int.end(),myfunction);  //333 222 111
cout<<"after sort,tail of bound by two is: "<<*bound_by_two.second<<endl;

}

bool myfunction (int i,int j) { return (i>j); }

运行结果:
before sort,tail of bound by two is: 3
after sort,tail of bound by two is: 1

在c++ reference 里面关于vector.end()的返回值是这样说明的:
return an iterator to the element past the end of the sequence
试验结果表明:
当你用sort去改变原来的vector元素的顺序时,排序之前所做的.end()操作也将返回重新排序后的相应的iterator值。

posted on 2011-11-29 15:43 ewre 阅读(1225) 评论(0)  编辑 收藏 引用 所属分类: C&C++ programming


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

留言簿(2)

文章分类

文章档案

最新评论

阅读排行榜