c++ 容器如何插入
时间: 2024-09-13 15:15:25 浏览: 56
在C++中,容器是标准模板库(STL)的一部分,它们是用于存储和管理数据的通用数据结构。C++标准库提供了多种容器,如vector、list、deque、set、multiset、map和multimap等。每种容器都有特定的插入元素的方法,但一些基本的插入操作在不同容器中是共通的。
以下是一些通用容器插入元素的方法:
1. `push_back()`:大多数序列容器(如vector、deque和list)都有`push_back()`方法,用于在容器的末尾插入一个新元素。
2. `push_front()`:一些序列容器(如list和deque)提供`push_front()`方法,在容器的开始位置插入一个新元素。
3. `insert()`:这是一个非常灵活的函数,允许在容器中的任何位置插入一个或多个元素。例如,`vector`、`list`和`deque`都重载了这个函数,允许在指定迭代器位置插入元素。
例如,`container.insert(iterator, element);`会在给定迭代器之前插入元素。如果容器是`map`或`multimap`,则`insert()`可以用来插入键值对。
4. `emplace()`:对于某些容器(如`vector`、`deque`和`list`),提供了`emplace()`方法,它与`push_back()`和`insert()`类似,但更高效,因为它可以直接在容器内部构造元素,不需要创建临时对象。
以`std::vector`和`std::list`为例:
```cpp
#include <vector>
#include <list>
#include <iostream>
int main() {
std::vector<int> vec;
vec.push_back(10); // 在vector末尾插入元素10
vec.insert(vec.begin() + 1, 20); // 在位置1插入元素20
std::list<int> lst;
lst.push_back(10); // 在list末尾插入元素10
lst.push_front(20); // 在list头部插入元素20
return 0;
}
```
对于不同的容器类型,插入方法的具体实现和性能可能会有所不同,因此在使用时需要参考具体容器的文档说明。
阅读全文
相关推荐









