c++ 对vector中元素进行排序,查找,返回下标的方法
发布日期:2021-10-07 04:43:12 浏览次数:7 分类:技术文章

本文共 1242 字,大约阅读时间需要 4 分钟。

文章目录

#排序
##对vector中的元素进行排序
使用头文件algorithm中的sort可以对vector中的元素进行从小到大排序。使用方法为:

#include
#include
#include
using namespace std;void main() { vector
temp = { 1,3,2,4,5,0 }; sort(temp.begin(), temp.end()); for (vector
::iterator i = temp.begin(); i != temp.end(); i++) cout << *i << endl;}

输出结果为:

这里写图片描述
##自定义排序方法
使用sort的自定义排序方法:

#include
#include
#include
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
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
::iterator i = temp.begin(); i != temp.end(); i++) cout << (*i).x <<"*"<<(*i).y<< endl;}

输出结果为:

这里写图片描述
#查找指定元素,并返回迭代器
使用函数为find,使用方法为:

vector
temp = { 1,3,2,4,5,0 };find(temp.begin(),temp.end(),value);//value为要查找的值,该函数返回一个指向对应元素的迭代器

#由迭代器得到元素下标

vector
temp = { 1,3,2,4,5,0 };vector
::iterator it=temp.begin();it+=2;//此时it对应的元素下标为int index=&*it-&temp[0];

转载地址:https://blog.csdn.net/meanong/article/details/80179680 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:使用进程名获取进程id和进程句柄
下一篇:c++函数返回值编写规范问题

发表评论

最新留言

很好
[***.229.124.182]2024年03月31日 06时29分28秒