gpt4 book ai didi

c++ - header 中的 std::vector 大小

转载 作者:行者123 更新时间:2023-11-30 02:40:03 25 4
gpt4 key购买 nike

我有一个关于 std::vector 的小问题。在 main.h 中,我尝试制作固定大小的 int vector

std::vector<int> foo(7);

但是 g++ 给出了这个错误:

../test/main.h:21:26: error: expected identifier before numeric constant
std::vector<int> foo(7);
../main/main.h:21:26: error: expected ',' or '...' before numeric constant

如何创建固定大小长度的私有(private) vector 变量?或者我应该简单地在构造函数中制作

for(int i=0; i<7;i++){
foo.push_back(0);
}

最佳答案

假设foo是数据成员,您的语法无效。通常,您可以像这样初始化类型 T 的数据成员:

T foo{ctor_args};

或者这个

T foo = T(ctor_args);

然而,std::vector<int>有一个接受 std::initializer_list<int> 的构造函数,这意味着第一种形式将产生一个大小为 1 的 vector ,其中单个元素的值为 7。因此您只能使用第二种形式:

std::vector<int> foo = std::vector<int>(7);

如果您受困于 C++11 之前的编译器,则需要使用构造函数:

class bar
{
public:
bar() : foo(7) {}
private:
std::vector<int> foo;
};

并注意在所有构造函数中初始化 vector (如果适用。)

关于c++ - header 中的 std::vector 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29298026/

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