1 将std::vector中的数值拷贝数组

在程序实际运行过程中,为了防止数组越界经常使用stl 容器,但是在做数据交换时经常需要传递数据流的指针,这个时候就需要将stl 容器中的数据拷贝到数组中,当然,只针对int float double这种常规类型的数据。

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

template<typename T>
size_t copy(std::vector<T> const& src, T* dest, size_t N) 
{
    size_t count = std::min(N, src.size());
    std::copy(src.begin(), src.begin() + count, dest);
    return count;
}

int main()
{
    std::vector<int> testVec = {1,2,3,4,5 };

    int* indexArray = new int[testVec.size()];

    copy(testVec, indexArray, testVec.size());

    for (int i = 0; i < 5; ++i)
    {
        std::cout << indexArray[i] << std::endl;
    }

    delete[] indexArray;

    return 0;
}

运行结果:

C++ – 将std::vector中的数值拷贝到数组中-StubbornHuang Blog