整数对的向量转化为整数向量的向量

vector of pairs of intergers to just a vector of vector of integers

本文关键字:向量 整数      更新时间:2023-10-16

如何从开始

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;
}

更新:为了避免复制,可以将矢量移动到新矢量vec.push_back(std::move(v));中。