cpp vector插入vector
时间: 2023-07-18 20:12:26 浏览: 47
你可以使用`insert`函数将一个向量插入到另一个向量中。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> v1{1, 2, 3};
std::vector<int> v2{4, 5, 6};
v1.insert(v1.end(), v2.begin(), v2.end());
for (auto i : v1) {
std::cout << i << " ";
}
return 0;
}
```
这个程序会输出:
```
1 2 3 4 5 6
```
这里,我们使用了`insert`函数,将`v2`中的元素插入到`v1`的末尾。`insert`函数的第一个参数是插入位置,这里我们使用了`v1.end()`,表示插入到`v1`的末尾。第二个参数是要插入的起始位置,第三个参数是要插入的结束位置。在这个例子中,我们将整个`v2`向量插入到了`v1`中。
相关问题
cpp vector insert
`vector::insert()`是C++ STL中的一个成员函数,用于在vector容器中指定的位置插入一个或多个元素。其语法如下:
```
iterator insert (iterator position, const value_type& val);
iterator insert (iterator position, size_type n, const value_type& val);
iterator insert (iterator position, InputIterator first, InputIterator last);
```
其中,第一个版本在指定位置插入一个元素,第二个版本在指定位置插入n个相同的元素,第三个版本在指定位置插入一个范围内的元素。
示例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 在第二个位置插入元素6
vec.insert(vec.begin() + 1, 6);
// 在第三个位置插入3个元素7
vec.insert(vec.begin() + 2, 3, 7);
// 在第四个位置插入另一个vector的元素
std::vector<int> vec2 = {8, 9, 10};
vec.insert(vec.begin() + 3, vec2.begin(), vec2.end());
// 输出vector的元素
for (auto i : vec) {
std::cout << i << " ";
}
return 0;
}
```
输出结果为:
```
1 6 7 7 7 8 9 10 2 3 4 5
```
vector 插入数据
vector是C++标准库中的一个容器,用于存储动态大小的元素序列。在vector中插入数据可以使用以下方法:
1. 使用push_back()函数:该函数将元素添加到vector的末尾。示例代码如下:
```cpp
#include <vector>
int main() {
std::vector<int> vec;
vec.push_back(1); // 插入元素1到vector末尾
vec.push_back(2); // 插入元素2到vector末尾
vec.push_back(3); // 插入元素3到vector末尾
return 0;
}
```
2. 使用insert()函数:该函数可以在指定位置插入元素。示例代码如下:
```cpp
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3}; // 初始化一个包含元素1、2、3的vector
auto it = vec.begin(); // 获取迭代器指向vector的起始位置
vec.insert(it + 1, 4); // 在第二个位置插入元素4
return 0;
}
```
3. 使用emplace_back()函数:该函数可以直接在vector的末尾构造元素,避免了拷贝或移动操作。示例代码如下:
```cpp
#include <vector>
class MyClass {
public:
MyClass(int value) : data(value) {}
private:
int data;
};
int main() {
std::vector<MyClass> vec;
vec.emplace_back(1); // 在vector末尾构造一个值为1的MyClass对象
return 0;
}
```