容器和迭代器"/>
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++STL之初识容器和迭代器
发布评论