gpt4 book ai didi

c++ - 如何使用独立于索引的函数初始化 vector ?

转载 作者:行者123 更新时间:2023-11-30 04:27:18 24 4
gpt4 key购买 nike

我想用一些整数定义一个 vector ,并用函数 get_a_value() 的结果填充它。可以通过这样的循环来完成:

auto v = new std::vector<int>( 7 );
for ( int i = 0; i < 7; i++ )
v->at(i) = get_a_value();

但是有一些冗余让我感到不舒服。这可以通过 vector 初始化中的一些 lambda 魔术来解决吗?

auto v = new std::vector<int>( 7, /* something involving get_a_value() here */ );

get_a_value() 的值在每次调用中可以不同。是的,我确实需要一个指针。

最佳答案

一般来说,你想要这样:

std::vector<T> v;
v.reserve(n); // reserve space only, no need to fill with default-constructed T's

std::generate_n(std::back_inserter(v), n, get_a_T_value); // fill with n values

这是最简单和最有效的。我把它留给你根据你的家庭作业进行调整。

关于c++ - 如何使用独立于索引的函数初始化 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11023803/

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