在写代码的过程中,CLion提醒我把push_back方法替换成emplace_back方法: emplace_back函数的作用是减少对象拷贝和构造次数,是C++11中的新特性,主要适用于对临时对象...
关于vector的扩容机制
往vector中添加元素时,如果空间不够将会导致扩容。vector有两个属性:size和capacity。size表示已经使用的数据容量,capacity表示数组的实际容量,包含已使用的和未使用的。 ...
STL中的迭代器失效
一、迭代器失效 向容器添加或者删除元素可能会导致指向容器的指针、引用或者迭代器失效。使用已经失效的指针、引用或者迭代器将会导致程序出现异常,编码过程中一定要时刻注意迭代器失效的场景。 例如,以vect...
std::string中size()和length()的区别
STL中的string类有两个方法size()和length()用来返回字符串的长度。 两者在实现上没有区别: [crayon-66deed04d7d1b689516544/] &nbs...
vector中reserve和resize的区别
reserve方法用来给vector预留空间,预留的空间只会改变capacity的大小,不会改变size大小。resize方法表示重新调整数组大小,capacity和size都会改变。 使用reser...
STL标准类型vector(一):vector的基本用法
一、vector介绍 标准库类型vector用来表示对象的集合,其中所有对象的类型都相同且不固定长度,常被称为“动态数组”。 它并不是一个标准的数据类型,而是一个类模板用来实例其他对象,也被称为容器。...
STL标准库类型string(一):string的基本用法
一、概述 标准库类型string用来表示可变长的字符串序列,使用它需要包含string头文件。 作为标准库的一部分,它被定义在std命名空间中,使用前需要加上以下代码: [crayon-66deed0...