我有一个 `std::list>`,我知道它是按照 `std::string` 元素排序的。
由于我想基于 `std::string` 元素做很多 `std::find_if`,因此我认为使用带有 `lower_bound` 和 `upper_bound` 的 `std::map` 更加适合。
事实上,我想以一种高效的方式向 `std::map` 中插入元素。因此,我想使用一个额外的迭代器来加速 `insert` 操作。
我认为最简单的方法是使用 `const_reverse_iterator` 遍历 `std::list` 并使用 `std::map` 的 `begin()`。
您会采用这种方式吗?还是这个想法不好?
谢谢!
由于我想基于 `std::string` 元素做很多 `std::find_if`,因此我认为使用带有 `lower_bound` 和 `upper_bound` 的 `std::map` 更加适合。
事实上,我想以一种高效的方式向 `std::map` 中插入元素。因此,我想使用一个额外的迭代器来加速 `insert` 操作。
我认为最简单的方法是使用 `const_reverse_iterator` 遍历 `std::list` 并使用 `std::map` 的 `begin()`。
您会采用这种方式吗?还是这个想法不好?
谢谢!
begin()
而不是end()
)。 但是,两者都很简洁。 我接受grddev的答案因其简单性,但我会记住std::inserter
。 谢谢大家! - Wok