文章目录
#排序
##对vector中的元素进行排序
使用头文件algorithm中的sort可以对vector中的元素进行从小到大排序。使用方法为:
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
void main() {
vector<int> temp = { 1,3,2,4,5,0 };
sort(temp.begin(), temp.end());
for (vector<int>::iterator i = temp.begin(); i != temp.end(); i++)
cout << *i << endl;
}
输出结果为:
##自定义排序方法
使用sort的自定义排序方法:
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
typedef struct NODE {
int x;
int y;
}node;
bool comp(node & a, node & b) {
return a.x < b.x;//若前一个元素小于后一个元素,则返回真,否则返回假,即可自定义排序方式
}
void main() {
vector<node> temp;
node a1, a2, a3;
a1.x = 1;
a1.y = 0;
a2.x = 0;
a2.y = 1;
a3.x = 3;
a3.y = 2;
temp.push_back(a1);
temp.push_back(a2);
temp.push_back(a3);
sort(temp.begin(), temp.end(),comp);
for (vector<node>::iterator i = temp.begin(); i != temp.end(); i++)
cout << (*i).x <<"*"<<(*i).y<< endl;
}
输出结果为:
#查找指定元素,并返回迭代器
使用函数为find,使用方法为:
vector<int> temp = { 1,3,2,4,5,0 };
find(temp.begin(),temp.end(),value);//value为要查找的值,该函数返回一个指向对应元素的迭代器
#由迭代器得到元素下标
vector<int> temp = { 1,3,2,4,5,0 };
vector<int>::iterator it=temp.begin();
it+=2;
//此时it对应的元素下标为
int index=&*it-&temp[0];