我有一个对向量,我需要将它们线性复制到整数向量。我的以下代码运行良好,但我不确定考虑到 C++ 中的结构填充问题是否安全。
std::vector < std::pair<int, int> > test_vector;
for (int i=0;i<5;i++) {
test_vector.push_back(std::make_pair(i,i*5));
}
std::vector<int> int_vec(test_vector.size() * 2);
std::copy(reinterpret_cast<int*>(&(*test_vector.begin())),reinterpret_cast<int*>(&(*test_vector.end())),int_vec.begin());
现在,我的问题是——上面的代码安全吗?如果没有,是否有一种优雅的方法可以在不编写循环的情况下做到这一点?