读书人

容器或者数组中数据顺序有关问题!

发布时间: 2013-03-01 18:33:02 作者: rapoo

容器或者数组中数据顺序问题!!!
对于一个容器或者是数组,比如


vector<int> ivec;
ivec.push_back(10);
ivec.push_back(50);
ivec.push_back(100);
ivec.push_back(30);
ivec.push_back(20);
ivec.push_back(10);
ivec.push_back(90);
ivec.push_back(60);
ivec.push_back(40);


比如这样一个容器ivec,怎么找出其数据大小的顺序,对于这个容器如果要是找到这个容器中数据从小到大的顺序的话就是第1,6,5,4,9,2,8,7,3;
怎么实现这个功能,
这样讲不知道有没理解!
[解决办法]

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

using namespace std;

int main()
{
vector<int> v1;
v1.push_back(10);
v1.push_back(50);
v1.push_back(100);
v1.push_back(30);
v1.push_back(20);
v1.push_back(10);
v1.push_back(90);
v1.push_back(60);
v1.push_back(40);

vector<int> v2(v1.begin(), v1.end());
sort(v2.begin(), v2.end());
unique(v2.begin(), v2.end());

for (vector<int>::iterator it = v1.begin(); it != v1.end(); ++it)
{
cout << *it << '\t'
<< find(v2.begin(), v2.end(), *it) - v2.begin() + 1 << endl;
}

return 0;
}

101
505
1008
303
202
101
907
606
404

读书人网 >C++

热点推荐