Vector
push_back()函数向vector中添加元素时,会创建参数的一个副本,添加的是这个新值而不是原始值
使用pop_back()函数删除vector对象中的元素时,要先检测对象是否为空
如果要用循环向vector对象中添加元素,不能使用范围for,范围for不能改变所遍历的容器的大小
不能用下标运算符向vector中添加元素
下标运算符只能访问已经存在的元素
不能用下标运算符向vector中添加元素,下标运算符只能访问已经存在的元素。
begin()和end() 操作返回容器对象上的迭代器
begin()返回指向第一个元素或字符的迭代器
end()则返回指示容器或string的最后一个元素的下一个位置的迭代器
如果容器为空,begin()和end()返回同一个迭代器,都是尾迭代器
cbegin()和cend()函数返回const_iterator
decltype类型指示符
作用是选择返回操作数的数据类型,分析表达式得到它的类型,但不得到它实际的值
例: decltype(fun()) sum = x //sum的类型就是函数的返回类型
如果decltype使用的表达式是一个变量,则decltype返回该变量的类型(包括顶层
const 和引用在内)
const int a = 0, &b = a;
decltype(a) x = 0; //x的类型是const int
decltype(b) y = x; //y的类型是const int&,y绑定到变量x
对于decltype,如果变量名加上一对括号,得到的类型与不加括号时会有所不同,如果给变量名加上了一层或多层括号,就会得到引用类型
decltype((i)) a = c; //结果是引用
decltype(i) b; decltype((val))的结果永远都是引用