gpt4 book ai didi

c++ - 我怎么能给c++ vector赋值

转载 作者:行者123 更新时间:2023-12-05 08:18:13 38 4
gpt4 key购买 nike

我知道我可以像这样初始化一个 vector :

vector<int> v{1,3,4,6};

但是,当我定义一个包含 vector 的类时,我无法在声明它的位置对其进行初始化,如下所示:

class C {
public:
vector<int> v;
C();
};

因此我需要在构造函数中对其进行初始化。以下代码有效,但不干净:

C::C() {
v.resize(4);
v[0]=1;
v[1]=3;
v[2]=4;
v[3]=6;
}

我怎么能像vector<int> v{1,3,4,6};一样整齐直接地初始化它呢?而不是一个一个地赋值?

编辑:也许我没有说清楚我的情况。 {1,3,4 6} 的值可能不是预定义值,它们将取决于某些逻辑和条件:if(condition_a) {v[0] = 0; v[1]=3; ...} else {v[0]=4;v[0]=8;...} .因此我必须处理其他一些事情才能知道如何初始化这个 vector ,所以我不能按照某些答案中的建议使用初始化列表。有什么建议吗?

最佳答案

以下将起作用:

C::C()
: v{ 1, 3, 4, 6 }
{}

请注意,在上面的代码中,您传递了 std::initializer_liststd::vector的构造函数。

关于c++ - 我怎么能给c++ vector赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61094527/

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