Векторная индексация для краткости - PullRequest
3 голосов
/ 14 февраля 2011

Предположим, у меня есть вектор

std::vector<a> A;

Я могу получить доступ к его функциям-членам через оператор . и могу проиндексировать его с помощью оператора []. Если у меня есть указатель на вектор, например

std::vector<a> *A;

Я могу получить доступ к его членам с помощью оператора short ->, но индексирование очень неудобно, т.е. (*A)[i]. Как это может быть написано более аккуратно? Примечание: Я не удовлетворен A->at(), потому что он выполняет проверку границ, которые являются медленными, и для меня важна скорость.

1 Ответ

16 голосов
/ 14 февраля 2011

Привязать его к ссылке проще всего, если проблема (*A)[i]:

std::vector<a>& ref = *A;
ref[i] = 0; //use reference

Обычно я бы предпочел передавать векторы по ссылке, а не по указателю, если только вы действительно не хотите разрешить значения NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...