繁体   English   中英

C ++“表达式必须具有指向对象类型的指针”和“下标需要数组或指针类型”是什么意思?

[英]What does C++ mean by "expression must have pointer-to-object type" and "subscript requires array or pointer type"?

我开始编写一个函数,它接受一个大小 x 大小的二维向量,并返回一个它顺时针旋转 90 度时的样子的副本。 我去那儿:

std::vector<int> rotate90(std::vector<int> orig, int size) {
    std::vector<std::vector<int>> r;
    r.resize(size);
    for (int i = 0; i < size; i++) {
       r[i].resize(size);
       for (int j = 0; j < size; j++) {
          r[i][j] = orig[size - j - 1][i];
       }
    }
}  

但是,它说最后一行有问题:“表达式必须具有指向对象的指针类型”和“下标需要数组或指针类型”。 我对使用 C++ 还很陌生,所以我查了一些关于使用带有向量的指针的东西,但我仍然不确定如何以一种在这里工作的方式来实现它们。

问题是orig不是二维向量。

std::vector<int> orig

是一维向量,所以

orig[size - j - 1][i]

不编译。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM