对照着c++primier 开始学习第九章容器,把课后习题当做练习,虽然是看过书上的讲解,但是做题编程的时候,一些需要注意的地方还是难免有遗漏。
一下是几点印象比较深刻的总结:
(1)前几章只学了vector容器,其实还有list和deque;
(2)定义容器和定义迭代器不要搞混淆了,比如说定义一个int型的vector容器为vector<int>vec;则定义一个int型的vector迭代器则为vector<int>::iterator ivec
(3)对迭代器进行解引用,得到的是迭代器所指的容器中对应元素的值,迭代器相当于指针,解引用相当于指针所指向的值
(4)关于main函数的建立,之前看书上的例子,一直是_tmain(int argc,_TCHAR*argv[])两个参数分别为参数个数和参数数组,如果不加#include<tchar.h>,编译的时候还会在_TCHAR*上报错,而且还一直出现一个错误,就是什么error2039,后来学长帮我,把主函数改成int main(void),错误就消失了,真是要多请教过来人。
(5)不要存储end操作返回的迭代器(例如 ilast=ilist.end()),添加或者删除deque或者vector中的元素都会导致存储的迭代器失败。书上给的,感觉蛮好的。
(6)在进行两个容器比较的时候,有一下几个条件:(1)两个容器是相同类型的容器
(2)两个容器中的元素类型相同
(3)容器中元素的类型支持所用的比较操作符
(7)两个容器相等的情况:(1)元素个数相同,元素相等
(2)元素个数不等,但其中一个是另一个的前子序列