类中的 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<int>(20, 0)
前面使用std::
你自己的示例代码包含了解决方案……奇怪的是,这种帖子最近越来越频繁了。
@CannGramps 我在您的代码中的任何地方都没有看到 stage_4 的声明。这是什么?
“我对 c++ 比较陌生,基本上是通过阅读互联网上的教程来学习的,所以我对它的理解存在很大的差距。” - 那你应该读一本书。
@KarolyHorvath 他们很频繁,因为人们回答他们:-P
【参考方案1】:
我是std::vector
。
vector
位于 std
命名空间中。
【讨论】:
以上是关于类中的 2D 矢量调整大小。在此范围内未声明错误[关闭]的主要内容,如果未能解决你的问题,请参考以下文章