今天做题,遇到一道比较有意思的题目,就是将map映射到一个二维动态数组中完成一个分组

这里的 mp
是一个关联容器(如 std::map<int, std::vector<int>>
或者 std::unordered_map<int, std::vector<int>>
),其键是整数,值是一维整数向量。ans
是一个二维向量(std::vector<std::vector<int>>
)。
具体分组过程
- 遍历关联容器 :使用迭代器
it
从mp
的起始位置开始,逐个访问mp
中的元素,直到遍历完整个mp
。 - 获取值并添加到结果容器 :在每次迭代中,
it->second
代表当前键所对应的值,也就是一个一维整数向量。通过emplace_back
方法将这个一维向量直接添加到ans
这个二维向量的末尾。 - 分组效果 :由于
mp
中的每个键都对应一个一维向量,这样不断将这些一维向量添加到ans
中,就相当于把mp
里的值按照键的顺序依次分组存储到ans
里。ans
的每个元素(也就是子向量)对应mp
中一个键的值,实现了分组的效果。