c++ 把数组元素copy到vector

c++ 把数组元素copy到vector

c++ 把数组元素copy到vector

C++中,我们经常会遇到将数组中的元素复制到vector中的情况。Vector是C++标准库中的一种容器,它提供了动态数组的功能,可以方便地对元素进行添加、删除、访问等操作。本文将详细介绍如何实现将数组元素复制到vector中的方法。

方法一:使用循环遍历数组元素并逐个添加到vector中

最直观的方法是通过循环遍历数组,并逐个将数组中的元素添加到vector中。下面是一个示例代码:

#include <iostream>
#include <vector>

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int n = sizeof(arr) / sizeof(arr[0]);

    std::vector<int> vec;

    for(int i = 0; i < n; i++) {
        vec.push_back(arr[i]);
    }

    // 输出vector中的元素
    for(int i = 0; i < vec.size(); i++) {
        std::cout << vec[i] << " ";
    }

    return 0;
}

运行结果:

1 2 3 4 5

在上面的代码中,我们首先声明一个数组arr,然后通过循环遍历数组元素,并逐个将元素添加到vector中。最后,我们再次使用循环输出vector中的元素,可以看到成功将数组元素复制到vector中。

方法二:使用STL的std::copy算法

除了使用循环遍历数组元素外,我们还可以使用STL的std::copy算法来复制数组元素到vector中。std::copy算法在<algorithm>头文件中定义,它可以将指定范围内的元素复制到目标位置。下面是一个示例代码:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int n = sizeof(arr) / sizeof(arr[0]);

    std::vector<int> vec(n);

    std::copy(std::begin(arr), std::end(arr), vec.begin());

    // 输出vector中的元素
    for(int i = 0; i < vec.size(); i++) {
        std::cout << vec[i] << " ";
    }

    return 0;
}

运行结果:

1 2 3 4 5

在上面的代码中,我们首先声明一个数组arr,然后声明一个大小为n的vectorvec。使用std::copy算法,我们可以直接将数组arr中的元素复制到vec中。最后再次使用循环输出vec中的元素,可以看到数组元素成功被复制到了vec中。

方法三:使用std::vector的构造函数

另一种简便的方法是使用std::vector的构造函数,可以直接将数组元素复制到vector中。下面是一个示例代码:

#include <iostream>
#include <vector>

int main() {
    int arr[] = {1, 2, 3, 4, 5};

    std::vector<int> vec(std::begin(arr), std::end(arr));

    // 输出vector中的元素
    for(int i = 0; i < vec.size(); i++) {
        std::cout << vec[i] << " ";
    }

    return 0;
}

运行结果:

1 2 3 4 5

在上面的代码中,我们利用std::vector的构造函数,直接将数组arr中的所有元素复制到vec中。也可以使用std::vector<int> vec(arr, arr + sizeof(arr) / sizeof(arr[0]));这种方式来实现相同的效果。

总结一下,本文介绍了在C++中将数组元素复制到vector的三种方法:使用循环遍历、使用STL的std::copy算法、使用std::vector的构造函数。在实际开发中,可以根据实际情况选择合适的方法来完成数组元素到vector的复制操作。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程