您的位置:首页 > 其它

STL数据类型-1 vector和使用sort排序

2018-02-05 13:25 197 查看

STL数据类型-1 vector和使用sort排序

不定长数组:vector 和 排序重载运算符

1. 定义不定长数组
使用头文件#include<vector>
vector<int> a;
vector<double> b;
vector<string> s;

2. 一些基本操作

a.size();           //读取长度
a.resize();         //改变长度
a.push_back();      //向尾部添加数据
a.pop_back();       //删除最后一个元素

3. 一些指针指向

a.begin()
a.end();

一些基本函数操作

1.遍历区间中的元素,传递给后面的函数用
for(pr=books.begin();pr!=books.end(),pr++)
ShowReview(*pr);
新的写法:
for_each(books.begin(),books.end(),ShowReview);
接受三个参数,前面两个数组区间.后面一个是函数,
把区间中的每个参数传递给函数ShowReview(books类型参数);
for_each函数无法修改books数组内容

2. 随机排列区间元素

random_shuffle(books.begin(),books.end());

3. 排序 重载<号,和自己编写排序函数
sort(books.begin(),books.end());
Books数组,是由Review 结构体类型创造的,需要定义
bool operator< (const Review& r1, const Review& r2)
{if (r1.title < r2.title)  return true;
else if (r1.title == r2.title&&r1.rating<r2.rating)
return true;
else return false;}
定义完成后就可以用sort来升序排序
如果想降序或者按rating来排序使用另外一种三个参数的sort函数
最后一个参数是指向要使用的的函数的指针
bool WorseThan(conse Review&r1, conse Review &re)
{if (r1.rating<r2.rating)
return true;
else
return false;}
定义完成这个函数后就可以用函数进行升序排列
sort(bools.begin(), books.end(), WorseThan);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: