gpt4 book ai didi

c++ - 在 C++ 中的类中定义具有固定大小的 vector ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:10:52 27 4
gpt4 key购买 nike

以下是我的C++代码部分

class Myclass 
{
public:
vector< vector<int> >edg(51); // <--- This line gives error
// My methods go here
};

注释中标记的行给我错误:
expected identifier before numeric constant
expected ‘,’ or ‘...’ before numeric constant

但是当我执行以下操作时它编译没有错误

  vector< vector<int> >edg(51); // Declaring globally worked fine
class Myclass
{
public:
// My methods go here
};

我想通了,即使我只是定义 vector < vector<int> >edg在第一种方法中它工作正常,所以问题出在常数大小 51 ,我似乎不明白。我尝试使用谷歌搜索,但由于我的 oop 概念薄弱,我不太了解,谁能解释为什么会发生这种情况?

最佳答案

这是一个限制。定义类成员。如果您想要一个固定大小的 vector ,只需使用 std::array 即可,这将使您能够做到这一点。

class Myclass 
{
public:
array< vector<int>, 51 >edg;
};

或者,您可以在构造函数中声明大小:

class Myclass 
{
public:
vector< vector<int> >edg;
Myclass() : edg(51) {}
};

关于c++ - 在 C++ 中的类中定义具有固定大小的 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28968226/

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