В C++
, почему следующий элемент доступа в vector
недействителен?Почему этот синтаксис недействителен? vectorPointer -> [0]
void foo(std::vector<int>* vecPtr) {
int n = vecPtr->size(); // ok
int a = vecPtr->[0]; // invalid
}
Вместо этого мы должны написать более громоздкой
(*vecPtr)[0] = 1;
думаю, operator[]
вызов просто должен иметь тот же синтаксис, как вызов метода, и я ненавижу дополнительную звезду и круглые скобки. (Я знаю, что C++ имеет гораздо более серьезные проблемы, но этот меня раздражает каждый раз, когда мне приходится вводить его ...)
Не ответ, но почему вы передаете указатель на вектор вместо передачи по ссылке? Это упростит использование функции в то же время, когда вы четко укажете, что код вызывающего абонента отвечает за время жизни вектора. –