【C/C++】顺序容器访问元素和删除元素

来源:互联网 发布:机翼翼型软件 编辑:程序博客网 时间:2024/05/10 01:28

访问顺序容器内元素的操作:

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 elementlist<int>::reference val = *ilist.begin();list<int>::reference val2 = ilist.front();//last and last2 refer to the same elementlist<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);}



0 0
原创粉丝点击