指针传染媒介向量

时间:2018-04-22 17:29:44

标签: c++ pointers vector

如何创建和访问向量指针向量。 我的意思是:

std::vector<size_t>, vec1, vec2, vec3;

int main() {
    std::vector<std::vector<size_t>*> vecP {
        &vec1,
        &vec2,
        &vec3
    };
}

像这样初始化vecP似乎有效,或者至少在Visual Studio中,它没有给出任何指示语法错误的红色下划线。 但是,如果我尝试这样访问它:

    //continuing int main()
    vecP[1].resize(6);
    //or
    vecP[1][3] = 7;

它没有用。

关于表达式的东西必须有类类型,如果我用 vecP替换上面块中的vecP,它会说没有运算符&#34; &#34;匹配这些操作数。

我对c ++中指针的想法很陌生,我确信解决方案很简单,但无论如何都要感谢所有帮助。

1 个答案:

答案 0 :(得分:1)

鉴于您的声明,您需要

vecP[1]->resize(6);
// or
vecP[1]->at(3) = 7;

问题在于,由于您的(顶级)向量元素是指针,因此您需要取消引用它们以访问其内容。解除引用的最简单方法是使用->代替.,就像我上面所做的那样,但您也可以使用(一元)*

相关问题