1.#include<tr1/unordered_map>库中有许多类似于Java中hash map功能的容器,可以用来存放数据等
2.iterator相当于一个迭代器,计数器,其声明如:
vector<int>::iterator d;
*d:取元素; ++d,--d:移动位置;
当然,其还可以进行一些比较运算符,iterator相当于一个指针,搭配容器使用,因为一些容器如list不能通过下标来访问元素,所以引进了iterator
3.纯虚拟函数的作用:防止基类定义对象,因为此时基类为抽象类
4.容器不管在哪种语言里都有着至关重要的作用,C++中的容器类有vector,list,set,map等等,至于具体的应用可以在运用时翻阅资料得知,最基本的运用包括:取出元素,存放元素,计算容器量等
5.vector中的remove和erase的区别
remove是在C++中的STL中,因此若想使用它,则必须引入#include<algorithm>库,每次调用remove()后,都要调整vector的大小(调用resize()方法),否则会出现错误;
erase不需要引入#include<algorithm>库,也不需要resize(),但其移除的是迭代器所指向的元素,因此erase()参数必须为迭代器,否则会出错,如:
vector<int> v;//假设此时d中已有数据
vector<int>::iterator itr=v.begin;
v.erase(*itr);//erase()方法中的参数就为迭代器itr所指向的元素
此外,iterator迭代器不会和容器同步变化,即若容器v在创建后就声明itr为其迭代器,则itr指向的容器v为空,即使在v添加元素后itr也不会有所变化
6.C++中可以通过如下办法将int型整数转换为字符串
#include<sstream>
int n;string s;
stringtream ss;
ss<<n;//将n传递给字符串输入流ss
ss>>s;//将ss传递给字符串s
7.next_permutation(begin,end)用于实现判断给定的数组在begin至end的范围之内时候还有全排列,若有,则会对数组进行全排列,该函数的返回值是bool类型,因此一般作为判断条件,相应的还有prev_permutation(begin,end),只不过前者是按字典序从前往后进行排列,后者是按字典序从后往前排列,如:
其结果为: