gpt4 book ai didi

c++ - 我可以始终使用 std::inserter(container, container.end()) 而不是 std::back_inserter(container) 吗?

转载 作者:可可西里 更新时间:2023-11-01 16:39:31 34 4
gpt4 key购买 nike

std::back_inserter 仅适用于带有 push_back 的容器,因此它不适用于 setmap

另一方面,std::inserter 适用于所有容器类型。那么我可以一直使用 std::inserter(container, container.end()) 吗?

那么下面的代码是否适用于所有类型的容器?

template <class TContainer, class TElement>
TContainer create(TElement element)
{
TContainer container;
auto inserter = std::inserter(container, container.end());
for (int i = 0; i < some_number; ++i)
{
element = do_something(element);
if (condition)
{
*inserter++ = element;
}
}
return container;
}

// use like
create<std::vector<int>>(1);
create<std::set<int>>(1);

最佳答案

除了标准类 std::forward_list 没有方法 insert

外,它将正常工作

关于c++ - 我可以始终使用 std::inserter(container, container.end()) 而不是 std::back_inserter(container) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23360656/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com