如何在C++中连接列表列表?

How do I concatenate a list of lists in C++?`

本文关键字:列表 连接 C++      更新时间:2023-10-16

在C++中,如何将存储在主列表(列表)中的所有列表合并为一个列表?在这种情况下,每个列表只包含整数。

假设您使用的是 C++11 和 std::list ,并且您的列表未排序,并且您不关心重复项:

std::list<std::list<int>> all_lists;
... //fill it somehow
std::list<int> merged;
for (const auto& l : all_lists) {
  merged.insert(merged.end(), l.begin(), l.end());
}

如果您不再需要使用原始列表,则可以使用 std::list::splice 而不是 std::list::insert 。在这种情况下,语法为:

 for (auto& l : all_lists) {
  merged.splice(merged.end(), l, l.begin(), l.end());
}