[英]subscript requires array or pointer type expression must have pointer-to-object type
[英]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.