vector怎么在最前面插入数据
时间: 2024-11-18 15:28:01 浏览: 18
在C++的`std::vector`容器中,在最前面插入数据,你可以使用`push_back()`方法配合`resize()`或者`emplace_front()`。这里分别解释一下这两种方法:
1. **使用`push_back()` + `resize()`**:
- 首先,将数据添加到向量的末尾,通过`push_back(your_data)`;
- 然后,调整向量的大小以便在开头有一个新位置,通过`vector.resize(new_size, your_data);`。这里`new_size`是你想要的新长度,`your_data`则是你刚刚添加的数据。这会将所有现有元素都右移一位,然后在新位置插入数据。
2. **使用`emplace_front()`**:
- 直接使用`emplace_front()`方法可以避免临时拷贝,效率更高。例如:`vector.emplace_front(your_data);`。这会在`vector`的第一个元素位置插入新数据,并确保元素已经按照指定的方式初始化(如果有对应的构造函数)。
示例代码:
```cpp
#include <vector>
int main() {
std::vector<int> vec;
// 使用push_back和resize
int data = 42;
vec.push_back(data);
vec.resize(vec.size() + 1); // 新增一个元素空间
// 使用emplace_front
data = 0;
vec.emplace_front(data);
return 0;
}
```
阅读全文