vector<double>::iterator pd;
vector<double> scores;
pd = scores.begin();
*pd = 22.3;
++pd;
pd = scores.end();//指向容器最后一个元素后面的那个元素
scores.erase(scores.begin(), scores.begin() + 2); //第一个迭代器指向区间的起始处,第二个迭代器位于区间终止处的后一个位置
if it1 和it2 是迭代器,则stl文档使用[p1,p2)来表示从p1到p2的区间。
scores.insert(scores.begin(), new_c.begin(), new_c.end());//第一个元素指定了新元素的插入位置,第二和第三个迭代器参数定义了被插入的区间。
vector<int>::iterator pr;
for(pr = books.begin(); pr != books.end(); pr++)
showreview(*pr);
可替换为,这样可避免显示地使用迭代器变量。
for_each(books.begin(),books.end(),showreview);
random_shuffle(books.begin(), books.end());//接受两个指定区间的迭代器参数,并随机排列该区间中的元素。该函数要求容器类允许随机访问。
sort(books.begin(),books.end());//升序排列
bool operator<(const Review & r1,const Review & r2)
{
if (r1.title < r2.title)
return true;
}
基于范围的for循环
double prices[5] = { 4.99, 10.99};
for (double x: prices)
cout << x << std::endl;
for (double &x : prices)
x = x * 0.8;
for(int x : {3, 5, 2})
cout << x << " ";
cout << '\n';
for_each(books.begin(), books.end(), ShowReview);
可替换为
for ( auto x : books) ShowReview(x);