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);