c++容器 - webdancer's Blog
c++容器
容器,顾名思义就是可以包含其他的对象。之前,接触过的类似容器的就是数组了。现在,接触一下容器,容器应该有很对好处。其中,很重要的一点就是容器有对应的迭代器,可以很容易的遍历。
在C++里用到的最多的应该就是Vector了。
vector<int> a; if(a.empty()){ for(int i=0;i<9;++i){ a.push_back(i); } } cout<<a[3]<<endl;
最好还是与迭代器一起用,这样的功能也是比较强的。
vector<int>::iterator iter; for(iter=a.begin();iter!=a.end();++iter){ cout<<*iter<<endl; }
使用迭代器可以很方便的遍历容器。特别是注意:迭代器的有效性,在操作时注意那些使迭代器失效的方法。我测试了一下:insert和erase方法竟然没有失效,也许是简单的原因吧!
iter=a.begin()+2; a.erase(iter); for(;iter!=a.end();++iter){ cout<<*iter<<endl; }
删除后,迭代器并没有失效呀!但是,安全期间还是给iterator重新赋值吧!详细:
http://hi.baidu.com/nxxch1989/blog/item/c0ffec220d5c285d9922ed7c.html
2010年10月29日 10:16
防止出现安全问题的最好方法就是每次对容器进行操作后都假设迭代器失效
2010年11月04日 05:10
@Kflayca: 是呀!c++primer 里说的可能失效,重新对迭代器赋值是对的.