Итератор для класса LoopInfoBase ? - PullRequest
1 голос
/ 27 апреля 2020

Я прочитал страницу llvm на LoopInfoBase(BlockT, LoopT) и понял, что она содержит информацию обо всех циклах верхнего уровня. Он также имеет итераторы (и обратные итераторы и т. Д. c), определенные в шаблоне класса.

Я не совсем понимаю, что повторяет итератор? Например, в vector<int> итератор i будет перебирать контейнерный вектор, а *i - это целое число, в Map<string, int> - итератор i будет перебирать карту, а *i будет пара введите <string, int>. Однако здесь есть шаблон класса, поэтому предположим, что i является итератором такого класса, что тогда будет представлять *i (или каков его тип)?

1 Ответ

1 голос
/ 27 апреля 2020

В случае файла, который вы упоминаете, тип итератора равен

typedef std::vector<LoopT *>::const_iterator llvm::LoopInfoBase< BlockT, LoopT >::iterator

Итак, мы видим, что это const_iterator (итератор значений const) вектора указателей LoopT.

Мне немного любопытно, почему вы погружаетесь в документы LLVM. Если вы пытаетесь изучать C ++, я бы не рекомендовал пытаться изучать документы компилятора LLVM, это кажется слишком сложным способом изучения языка. Попробуйте учебники, такие как http://www.cplusplus.com/doc/

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