类中的 2D 矢量调整大小。在此范围内未声明错误[关闭]

Posted

技术标签:

【中文标题】类中的 2D 矢量调整大小。在此范围内未声明错误[关闭]【英文标题】:2D vector resize in class. Error was not declared in this scope [closed] 【发布时间】:2015-10-26 12:31:27 【问题描述】:

编辑:抱歉,我输入了错误的向量。这是无效的代码。行 'stage_4.resize(20, vector(20, 0));'给了我错误。 'stage_4.resize(20);有效,但我无法通过调整两个维度来编译它。另外,我忘了提到我正在使用 Code::Blocks 13.12 和 Mingw32-gcc。

我对 c++ 比较陌生,基本上是通过阅读互联网上的教程来学习的,所以我对它的理解存在一些很大的差距。我一直在尝试编写一个使用更多类的程序以使事情更加简化,并且刚刚开始研究使用向量。但是,我在两者的结合中遇到了一些障碍。我创建了一个类,并在其中创建了一个向量。在我尝试将向量的大小调整为类函数中的二维数组之前,这一切都编译得很好。这是相关代码。

class stage
public:
std::vector<int> stage_4;

   int setup(int a)
      switch (a)
      case 1:
         stage_4.resize(20, vector<int>(20, 0));
         break;
      
   
 

当我只是做 stage_4.resize(20);它编译没有问题。但是当我尝试更改数组的两个维度时,就像在这段代码中一样,它告诉我“错误:'vector'没有在这个范围内声明”。我不太确定自己做错了什么,因为正如我所说,我对 c++ 还很陌生。

编辑:我也尝试过 stage_4.resize(20, std::vector(20,0));,但它告诉我“没有匹配函数调用 'std::vector::resize(int , std::vector)'"

【问题讨论】:

您好像忘记在vector&lt;int&gt;(20, 0)前面使用std:: 你自己的示例代码包含了解决方案……奇怪的是,这种帖子最近越来越频繁了。 @CannGramps 我在您的代码中的任何地方都没有看到 stage_4 的声明。这是什么? “我对 c++ 比较陌生,基本上是通过阅读互联网上的教程来学习的,所以我对它的理解存在很大的差距。” - 那你应该读一本书。 @KarolyHorvath 他们很频繁,因为人们回答他们:-P 【参考方案1】:

我是std::vector

vector 位于 std 命名空间中。

【讨论】:

以上是关于类中的 2D 矢量调整大小。在此范围内未声明错误[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

错误:此范围内未声明“NULL”

矢量调整大小后下标超出范围

我正在更换未在此范围内声明

内存访问错误 - 矢量调整大小

错误:类中没有声明成员函数

尽管在类中声明了变量,但无法在范围内找到