风景01:
vector<int> *v = new vector<int>();
v->push_back(10);
它工作正常。
风景02:
vector<int> *arr = new vector<int>[5];
arr[0]->push_back(10);
这是行不通的。为什么?
最佳答案
v
是指向 std::vector<int>
的指针目的。因此 push_back()
使用 .
不能直接获得 vector 的函数符号,但可以使用 ->
直接访问符号,以及其他方式。
arr
是指向 std::vector<int>
的指针对象数组。调用arr[0]
您正在获取该数组的第一个元素,即 std::vector<int>
对象,而不是指针。标准.
符号在这里应该工作得很好。
关于c++ - 为什么在声明对象数组时不能使用 -> 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59566234/