C++STL之初识容器和迭代器

提问大纲

初识STL
初识容器和迭代器

*表示这并不是一个问题,而是一些碎碎念

编译原理?预处理 编译 汇编 链接

memecpy函数?

用C++定义数组的方法?自带的方法,动态分配内存,STL库

STL库有哪些版本?STL是开源的,不同的厂商基于此发展了泛型库,惠普HP STL,基于上述的SGI STL其中GCC编译器支持,基于上一个适配更多的编译器STLport,基于上三个PJ STL,非开源,适配vc++

gcc和g++?

*STL 容器 算法 迭代器 函数对象 适配器 内存分配器13个头文件,标准头文件不再有拓展名

GNU是什么?操作系统还有一些列的拓展,宗旨是开源代码GPL协议,旗下GCC和Linux

容器的分类?container序列容器(元素在容器中的位置与元素的值无关)如vector、list、deque/ 还有排序容器也叫关联容器(默认按照从小到大的顺序进行排序)如set、multiset、map、multimap等/ 还有哈希容器也叫关联容器C++11最新加入(容器的位置由哈希函数确定)如unordered_set 哈希集合、unordered_multiset 哈希多重集合、unordered_map 哈希映射以及 unordered_multimap 哈希多重映射

*sequence container/ associative container/ unordered associative container

迭代器是什么?介于容器和算法之间(每一种不同类型的容器都定义一种迭代器类型),便利读写容器内数据,隐藏容器内部差异,与指针类似,就可以把它看成是一种数据格式,和int是一样的

迭代器的类别?前向迭代器 forward iterator 双向迭代器 bidirectional iterator 随机访问迭代器 random access iterator 其他输入迭代器 输出迭代器暂且不讲

这三种迭代器的基本功能?

容器与迭代器的绑定关系?vector array deque 随机访问迭代器,list set map 双向迭代器,forward_list unordered_map 前向迭代器 stack queue 不支持

怎么上面说三种迭代器,下面就是四种而且都不一样?拿vector来举例子,它是random access iterator,在这个基础上面可以定义正向 常量正向 反向 常量反向

迭代器的定义方式?有些容器不能定义所有类型的迭代器 容器类名::iterator 迭代器名;

C++11的新容器?array forward_list unordered_set unordered_map

双向迭代器能干什么不能干什么?可以++和–,不能用下标随机访问元素,不能+2+3,不能比较大小

你可能感兴趣的:(C++综述,c++,stl,数据结构)