📜  结合两个向量 c++ (1)

📅  最后修改于: 2023-12-03 15:11:38.521000             🧑  作者: Mango

C++ 中如何结合两个向量?

在 C++ 中,可以使用不同的方法来结合两个向量。下面将介绍两种最常用的方法:

1. 使用 insert 函数

使用 insert 函数是最简单的方法之一。 insert 函数可以将一个向量直接插入到另一个向量的任意位置。下面是示例代码:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> vec1 {1, 2, 3};
    vector<int> vec2 {4, 5, 6};
    
    vec1.insert(vec1.begin() + 2, vec2.begin(), vec2.end());
    
    for (auto i : vec1) {
        cout << i << " ";
    }
    
    return 0;
}

在上述代码中,我们创建了两个向量:vec1 和 vec2。然后使用 insert 函数将 vec2 插入到 vec1 中间。注意,vec1.insert 函数的第一个参数是一个迭代器,它指向将要插入元素的位置。在本例中,我们将 vec2 插入到 vec1 的第三个元素后面(即位置 2)。最后,使用循环遍历整个vec1 向量并将其打印到屏幕上。

2. 使用 "+" 运算符

另一种结合两个向量的方法是使用 "+" 运算符。这个方法要比使用 insert 函数稍微复杂一些,但是看起来更自然。下面是示例代码:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> vec1 {1, 2, 3};
    vector<int> vec2 {4, 5, 6};
    
    vector<int> vec3 = vec1 + vec2;
    
    for (auto i : vec3) {
        cout << i << " ";
    }
    
    return 0;
}

vector<int> operator+(const vector<int>& v1, const vector<int>& v2) {
    vector<int> result = v1;
    result.insert(result.end(), v2.begin(), v2.end());
    return result;
}

在上述代码中,我们首先定义了两个向量 vec1 和 vec2,然后使用 "+" 运算符将它们结合在一起。注意,在本例中,我们必须在全局范围内定义一个名为 operator+ 的函数,该函数将两个向量相加。这个函数采用两个 const vector 类型的参数,并返回一个 vector 类型的向量。该函数负责创建一个新的向量,其中包含两个输入向量的所有元素。最后返回新向量。

无论哪种方法,结合两个向量变得比较容易,我们可以选择适合自己的方法来处理这个问题。