访问顺序容器内元素的操作:
c.back(); 返回最后一个元素的引用;
c.front();返回第一个元素的引用;
//下面两个操作只适用于vector和deque容器
c[n];返回下标为n的元素的引用;
c.at(n);返回下标为n的元素的引用;
//在调用front和back函数之前或者在对begin和end返回的迭代器进行解引用之前都要判断容器ilist是否为空。
if(!ilist.empty())
{
//val and val2 refer to the same element
list<int>::reference val = *ilist.begin();
list<int>::reference val2 = ilist.front();
//last and last2 refer to the same element
list<int>::reference last = *--ilist.end();//end指向容器的超出末端的下一个位置,要对其减一取引用
list<int>::reference last2 = ilist.back();
}
删除顺序容器元素的操作:
c.erase(p);//删除迭代器p指向的元素,必须确保p不是end迭代器,返回一个迭代器,指向被删元素的后面元素。
c.erase(b,e);//删除迭代器b和e所标记的范围内所有的元素。返回一个迭代器,它指向被删元素段后面的元素。如果e本身就是指向超出元素末端的下一个位置的迭代器,则返回的迭代器也指向容器的超出末端的下一个位置。
c.clear();//删除c中的所有元素,返回void。
c.pop_back();//删除元素的最后一个元素,返回void。
c.pop_front();//删除元素的第一个元素,返回void。只适用于list或deque容器。
string searchValue("helloworld");
list<string> ilist;//初始化下
list<string>::iterator iter = find(ilist.begin(),ilist.end(),searchValue);
if(iter!=ilist.end())
{
ilist.erase(iter);
}