代器操作: *iter、 ++iter、 --iter、 iter1 == iter2, iter1 != iter2; 5、vector和deque容器的迭代器的额外操作: iter+n, iter-n, >、 >=、 < 、 <=
今天看Scott Meyers大师的stl的用法,看到了我前段时间犯的一个错误,发现我写的代码和他提到错误代码几乎一模一样,有关stl容器删除元素的问题,错误的代码如下:std::vector<struct> mFriendList;...std::vecto
#.string 建议 使用string 的方便性就不用再说了,这里要重点强调的是string的安全性。 string并不是万能的,如果你在一个大工程中需要频繁处理字符串,而且有可能是多线程,那么你一定要慎重(当然,在多线程下你使用任何STL容器都要慎重)。
由于容器所对应不同的迭代器、指针和引用的失效规则 ,使得容器的删除操作较为复杂。解决问题的最好方法取决于你是怎样鉴别出哪个对象是要被去掉的,储存它们的容器的类型,和当你删除它们的时候你还想要做什么(如果有的话)。为此分 3 种情况讨论: 去除一个容器中有特定
#.string 建议 使用string 的方便性就不用再说了,这里要重点强调的是string的安全性。 string并不是万能的,如果你在一个大工程中需要频繁处理字符串,而且有可能是多线程,那么你一定要慎重(当然,在多线程下你使用任何STL容器都要慎重)。
在stl中容器分为两大类,序列式容器和关联式容器。 序列式容器:array、vector、heap、priority-queue、list、slist、deque、(stack、queue)最后两个是配接器 关联式容器:RB-tree、set、map、mult
如果键值是string型,直接输出就可以了,multimap是排好序了的, STL的map表里有一个erase方法用来从一个map中删除掉指令的节点eg:map<string,string> mapTest;typedef map<string,string>
vector(deque)是一个顺序容器,erase后,后面的元素自动前移,后面所有迭代器失效(地址前移) 对顺序容器的erase正确操作方法是使用erase的返回值,erase返回被删元素的下一个元素地址。 // 假设vec中只存放一个值 iterato