c++ - 多维 vector 初始化

标签 c++ stl vector initialization

我关注 std::vector声明:

std::vector<std::vector<std::vector<int> > > m_input;

我正在初始化它如下:

    m_input.resize (100);
    m_output.resize(100);
    for (int i = 0; i < 100; ++i) {
        m_input [i].resize(100);
        m_output[i].resize(100);
        for (int j = 0; j < 100; ++j){
            m_input [i][j].resize(100);
            m_output[i][j].resize(100);
        }
    }

如何通过成员初始化列表实现这一点?

最佳答案

std::vector<T>有一个带有两个参数的构造函数,一些元素和一个初始值。在你的例子中,你想要初始化 m_input 100 份 std::vector<std::vector<int> > , 所以它会是 : m_input(100, X) .现在,那个 X依次是 100 的 vector std::vector<int> ,它又包含一百个整数:

: m_input(100, std::vector<std::vector<int> >(100, std::vector<int>(100, 0)))

关于c++ - 多维 vector 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6491251/

相关文章:

c++ - 检测类型是否为 "mapping"

c++ - 如何使用 `std::async` 在互斥保护循环中调用函数?

c++ - 具有继承的 friend 类

c++ - 为什么容器分配器需要指定它们分配的类型?

c++ - 从具有特定字符串长度的 vector 中删除元素

c++ - 将 Fortran 子例程链接到 C++ 程序时出错

c++ - Float OR Int 范围内的随机数

c++ - 如何使用 Traits 模式访问类的不同成员

r - 在 R 中的数据框列中使用向量

R 在一个语句中命名向量