c++ - 调整类中二维 vector 的大小

标签 c++ vector resize

我正在尝试调整类里面 vector 的大小。我不知道错误在哪里。希望你能帮助我。

这是我的代码:

class State {
private:
    vector<int> numbers;
    int score;

public:
    int getScore() {
        return score;
    }
    void setScore(int score) {
        this->score = score;
    }
    int getSize () {
        return this->numbers.size();
    }
    void setSize(int size) {
        this->numbers.clear();
        this->numbers.resize(size);
        for (int i = 0; i < size; ++i)
            this->numbers[i].resize(size);
    }
};

当我尝试编译时,出现此错误:

In file included from ./power.cpp:11:
./power.hpp:45:24: error: member reference base type 'value_type' (aka 'int') is not a structure or union
                    this->numbers[i].resize(size);
                    ~~~~~~~~~~~~~~~~^~~~~~~
1 error generated.

希望你能帮助我。

提前致谢:)

最佳答案

vector<int> numbers;

声明一个一维 vector 。在行中

this->numbers[i].resize(size);

您假设 numbers[i] 本身是一个 vector ,但事实并非如此(它是一个 int)。你可能想要的是声明

vector<vector<int>> numbers;

或将 2D vector “模拟”为 1D 展平 vector (通常速度更快),但确保从 2D 映射到 1D,反之亦然。

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

相关文章:

c++ - Windows 上的 __LP64__?

java - JNI : Invoke JAVA method from C++, 返回对象、引用和 GC

c++ - Coin-CLP 的设置问题

iphone - 在 iPhone 上使用 ARM SIMD 进行游戏向量/矩阵运算的正确方法是什么?

javascript - 使用 CSS 调整 CodeMirror 编辑器大小不起作用

javascript - IE8 为不需要的滚动条留出空间

jquery - 移动滚动触发 jQuery 调整大小事件 - (仅在使用移动设备时触发,在浏览器视口(viewport)中可以)

c++ - 单个负载是否与多个存储同步?

c++ - 旅行商启发式

c++ - 如何构建 std::vector<std::string> 然后对它们进行排序?