vector的size函数返回vector对象中元素的个数,返回值的类型由vector定义的size_type类型。要使用size_type,需首先指定它是由哪种类型定义的。vector对象的类型总是包含着元素的类型:
vector<int>::size_type //正确
vector::size_type //错误
string对象和vector对象的下标运算符可用于访问已存在的元素,而不能用于添加元素。
Note:只能对确知存在的元素执行下标操作。例如:
vector<int>ivec; //空vector对象
cout<<ivec[0]; //错误:ivect不包含任何元素
vector<int>ivec2(10); //含有10个元素的vector对象
cout<<ivec2[10]; //错误:ivec2元素的合法索引是从0到9
试图用下标的元素去访问一个不存在的元素将引发错误,不过这种错误不会被编译器发现,而是在运行时产生不可预知的值。
不幸的是,这种通过下标访问不存在的元素的行为非常常见,而且会产生很严重的后果。所谓的缓冲区溢出指的就是这类错误,这也是导致PC及其他设备上应用程序出现安全问题的一个重要原因。