私はそれらを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());
さて、私の質問は - 上記のコードは安全ですか? そうでない場合、ループを書かずにそれを行うエレガントな方法はありますか?