如何使用(lambda)函数填充C容器?

前端之家收集整理的这篇文章主要介绍了如何使用(lambda)函数填充C容器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想用指向对象的指针初始化一个容器.我目前有这样的循环:
for(int i=0;i < n;i++) {
    container.push_back(new Object());
}

哪个C操作(即类似于std :: transform)是替换此循环并使用n个新创建的对象初始化容器的权利?

解决方法

使用 std::generate
constexpr int n = 10;
std::vector<Object*> v1(n);
std::generate(v1.begin(),v1.end(),[](){ return new Object(); });

std::generate_n

std::vector<Object*> v2;
v2.reserve(n); // pre-allocate sufficient memory to prevent re-allocations
               // (you should have done in original loop approach as well)
std::generate_n(std::back_inserter(v2),n,[] { return new Object(); });
原文链接:https://www.f2er.com/c/120236.html

猜你在找的C&C++相关文章