我有一个pair向量,需要线性地将它们复制到一个int向量中。我有以下代码可以正常工作,但我不确定在考虑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());
现在,我的问题是 - 上面的代码安全吗?如果不安全,有没有一种优雅的方法可以做到不用编写循环呢?
std::accumulate
返回结果向量,而且算法名称在某种程度上也有意义。 - chris