c ++ вектор итераторов - PullRequest
       21

c ++ вектор итераторов

1 голос
/ 25 октября 2010

Я понимаю, что могу указать количество векторов std::vector<int>, используя цикл for на одном vector<int*> onev_point_2_all и т. Д., Но как мне сделать это с помощью итераторов, есть ли способ создать вектор итераторов вместо векторауказатели?

1 Ответ

4 голосов
/ 25 октября 2010

Вы можете иметь вектор итераторов, необязательные итераторы вектора и необязательно итераторы одной и той же коллекции, но все они должны быть одного типа.

Вам не понадобится базовая коллекция дляиметь возможность разыменовывать их, поэтому, если вы знаете, что все они являются действительными итераторами, и это все, что вы хотите сделать, у вас не возникнет проблем с этим.Если они неконстантные итераторы, вы также можете установить их значения (если не установить итераторы).

Если вам нужно проверить их, чтобы увидеть, являются ли они «конечными» итераторами, или удалить их из своей коллекции, тогда вынужно будет знать основную коллекцию за итератором.Если они все происходят из одной коллекции, что довольно просто, но если они происходят из разных коллекций, вам необходимо хранить указатель на их базовую коллекцию.Обратите внимание, что это должен быть указатель на базовую коллекцию, а не ссылка, так как если они являются векторными элементами, они должны быть назначаемыми.

...