我怎么去
std::vector<std::pair<int, int>>
只是
std::vector<std::vector<int>>
?有真正有效的方法吗?
最佳答案
我会做这样的事情:
#include <vector>
#include <utility>
int main()
{
//Vector of pairs
std::vector<std::pair<int, int>> pairs = { {1,1},{2,2} };
//New vector
std::vector<std::vector<int>> vec;
//Allocate memory for new vector
vec.reserve(pairs.size());
for (auto &p : pairs)
{
//Create vector with first and second element of pair
std::vector<int> v = { p.first, p.second };
vec.push_back(v);
}
return 0;
}
更新:为避免复制,您可以将 vector 移动到新 vector vec.push_back(std::move(v));
。
关于c++ - 整数对 vector 到整数 vector vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58636873/