vector 是 C++ 标准库中的一种动态数组,可以自动进行内存管理,具有以下特点:
vector的大小可以动态调整。vector支持快速随机访问。vector支持在尾部添加元素,时间复杂度为 O(1)。vector可以存储任意类型的元素。
下面是一个简单的使用 vector 的例子:
#include <iostream>
#include <vector>
int main() {
std::vector<int> v; // 创建一个空的
vector v.push_back(1); // 在尾部添加元素
v.push_back(2);
v.push_back(3);
for (int i : v) {
std::cout << i << " ";
}
return 0;
}
在上面的例子中,我们首先创建了一个空的 vector,然后使用 push_back 方法在尾部添加了三个整数元素。最后,我们使用 for 循环遍历 vector 并打印出每个元素的值。
vector 还提供了其他一些常用的方法,例如:
size():返回vector的大小。empty():判断vector是否为空。pop_back():删除尾部元素。at(index):返回指定位置的元素。front():返回头部元素。back():返回尾部元素。emplace_back:emplace_back和push_back都是C++标准库中vector类成员函数,用于在容器的末尾插入元素。它们的区别如下:
- 参数传递方式:
push_back接受参数并通过拷贝或移动来插入新元素;而emplace_back接受参数并通过就地构造的方式插入新元素,这意味着它可以在容器内部直接修改元素,而不需要执行拷贝或移动操作。 - 性能开销:由于
emplace_back直接在容器末尾构造新元素,而不需要执行拷贝或移动操作,因此它比push_back更高效。在大量插入元素时,这种差异会更加明显。 - 代码可读性:
emplace_back的用法更加简洁明了,因为它可以避免创建临时对象和执行拷贝或移动操作。这使得代码更易于理解和维护。
总之,如果你需要插入一个新元素到容器的末尾,并且希望避免拷贝或移动操作以提高性能和代码可读性,那么使用emplace_back是更好的选择。