c++ - cpp使用 vector 编译错误初始化二维数组

标签 c++ vector compilation initialization

我想在构造函数中使用初始化列表来初始化二维数组 m_field。 喜欢这个线程 Creating 2-dimensional vector in class C++ ,但我收到下面列出的错误。

BoardData.h

#ifndef BOARDDATA_H
#define BOARDDATA_H

#include <vector>

class BoardData
{
    public:
    /** Default constructor */
    BoardData(int rows, int cols);
    /** Default destructor */
    virtual ~BoardData();
    protected:
    private:
    std::vector< std:vector<int> > m_field;

};


#endif // BOARDDATA_H

BoardData.cpp

#include "BoardData.h"

BoardData::BoardData(int rows, int cols) :
                     m_field(rows, std::vector<int>(cols,0))
{
    //ctor
}

BoardData::~BoardData()
{
    //dtor
}

编译器输出:(gcc 版本 4.6.3)

BoardData.h|18|error: template argument 1 is invalid|
BoardData.h|18|error: template argument 2 is invalid|
BoardData.cpp||In constructor ‘BoardData::BoardData(int, int)’:|
BoardData.cpp|4|error: expression list treated as compound expression in mem-initializer [-fpermissive]|
BoardData.cpp|4|warning: left operand of comma operator has no effect [-Wunused-value]|
BoardData.cpp|4|error: cannot convert ‘std::vector<int>’ to ‘int’ in initialization|
||=== Build finished: 4 errors, 1 warnings ===|

最佳答案

std::vector< std:vector<int> > m_field;

应该是

std::vector< std::vector<int> > m_field;
                 ^

不是很有用的错误信息,我同意...

关于c++ - cpp使用 vector 编译错误初始化二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24261760/

相关文章:

c++ - 在 Windows 中获取安装前缀的最佳方法是什么

r - 优化/向量化 R 中从输入向量的范围生成随机数的循环?

java - 编译并填写 Jasper 报告 - XML 数据源

java - Gradle 构建 - 非 Java 项目

c++ - SFML 2.1 - 检测单击鼠标并更改纹理

c++ - 使用 -fno-elide-constructors 的临时对象

java - 我怎样才能在 Emacs 中为 C++/Java 设置折叠?

r - 如何将由不同长度的向量组成的列表转换为R中可用的数据框?

c++ - 有哪些好的做法可以帮助防止 unordered_maps 和 vector 中的 std::bad_alloc?

javascript - ng-if 中的 AngularJS 指令不会运行