c++-C++中顺序容器 erase,C++ Primer是否出错

问题描述

C++中顺序容器 erase,C++ Primer是否出错

C++ Primer中文第五版9.3.3的P312删除多个元素原文:
elem1=slist.erase(elem1,elem2); //调用后,elem1==elem2
迭代器elem1指向我们要删除的第一个元素,elem2指向我们要删除的最后一个元素之后的位置。

这句话是不是错了。调用slist.erase(elem1,elem2)删除了slist从elem1到elem2(包含elem2)的元素,指向elem2后的元素。那么调用之后elem1怎么会等于elem2呢!

解决方案

也就是说调用后,elem1==elem2,即删除了 elem1 和 elem2 之间的元素。
如果你想知道书上说的是对,还是错,最好是自己上机编程来验证,而不是来这里提问。

编译器给出的答案,肯定是正确的。虽然说,不同编译器、对某些语句可能得到不同的答案,但这也是你学习的一部分,知道会比不会强一些。

解决方案二:

c++ primer 顺序容器
【C++ Primer】顺序容器
顺序容器(一)--《C++ primer》

解决方案三:

也就是说调用后,elem1==elem2,即删除了 elem1 和 elem2 之间的元素

时间: 2024-08-22 14:16:47

c++-C++中顺序容器 erase,C++ Primer是否出错的相关文章

C++Primer笔记之顺序容器的使用详解_C 语言

顺序容器,它将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素,这就是顺序容器.标准库里定义了三种类型:vector(支持快速随机访问).list(支持快速插入.删除).deque(双端队列)容器只定义了少量操作,大多数额外的操作由算法库提供.容器内元素的类型约束:1.元素类型必须支持赋值运算:2.元素类型的对象必须可以复制.这是容器元素类型的最低要求,如果想支持一些其他特殊要求,则必须具备相关的性质. 可以定义容器的容器vector< vector<int> > l

[C++ 面试基础知识总结] 顺序容器

[C++ 面试基础知识总结] 顺序容器 参考书籍:<C++ Primer> 目录 C 面试基础知识总结 顺序容器 目录 顺序容器与选择 迭代器 容器的初始化和赋值 顺序容器操作 添加元素 访问元素 删除元素 改变容器大小 迭代器失效 vector对象的增长 string 操作 改变string 搜索string 数值转换 容器适配器 栈stack 队列queue 顺序容器与选择 顺序容器类型: vector 可变大小数组 deque 双端队列 list 双向链表 forward_list 单向

STL之如何选择顺序容器

一.顺序容器的分类 顺序容器:vector向量.list链表.deque双端队列: 优先级最高的是vector向量,它的速度比较快,优点最多: 在程序设计中,容器可以切换: 1 #include <iostream> 2 #include <vector> 3 #include <list> 4 #include <deque> 5 6 using namespace std; 7 8 int main() 9 { 10 vector<int>

顺序容器

一.顺序容器的相关操作: 示例: 1 #include <iostream> 2 #include <vector> 3 #include <list> 4 #include <deque> 5 6 using namespace std; 7 int main() 8 { 9 vector<int> a; 10 list<int> b; 11 deque<int> c; 12 13 vector<int>::

C++中vector容器的常用操作方法实例总结_C 语言

1 获得容器最后一个元素   ------ 使用 back或rbegin 取得 // back.rbegin 有常量和引用两种形式 std::vector<int> myVector; myVector.back()=3; std::vector<int>::reverse_iterator tailIter; tailIter=myVector.rbegin(); *tailIter=3 2 删除某元素 需要删除某位置的元素,应使用iterator遍历, 不应使用at(i) 方式

WF 4.0基础篇(四) 顺序容器Sequence与CodeActivity

本节主要介绍如何在WF4.0的流程中添加多个Activity,以及如何自定义Activity 本文例子下载: http://files.cnblogs.com/foundation/SequenceSample.rar http://files.cnblogs.com/foundation/CodeActivitySample.rar 顺序容器Sequence 与CodeActivity 顺序容器Sequence 类名 System.Activities.Statements.Sequence

STL之顺序容器

顺序容器: vector:数组 list:链表 deque:双端数组 顺序容器适配器: stack:堆栈 queue:队列 priority_queue:优先级队列 deque是一个动态数组 deque与vector非常类似: deque可以在在数组开头和末尾插入和删除数据: 1 #include <deque> 2 #include <algorithm> 3 4 deque<int>::iterator iElemetnLocater; 5 for(iElement

现实中的容器技术运用案例

进入2016年以后,容器技术早已经从最初的牛逼满天飞到了脚踏实地的大规模铺开.很多企业都已经在实际项目中或深或浅的使用着容器技术,享受到新技术带来的简洁和高效.作为国内最早研究和使用Docker技术的企业,ThoughtWorks在2013年底就在实际项目中将Docker用于测试环境的资源复用,并在之后的许多项目中逐渐总结出许多有用的实践和经验.在这篇文章里,我将聊聊Docker在我经历过项目中的一些比较有代表性的运用场景. 现实中的容器技术运用方式非常广泛而灵活,时常让人觉得脑洞大开,概括来说

C++中vector容器的用法_C 语言

在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的. (5)使用迭代器访问元素. vector<int>::iterator it; for(it=vec.begi