как передавать элементы контейнера в функцию
От: sci_reseacher  
Дата: 14.04.16 08:37
Оценка:
Нужно внутри функции получить доступ к элементам контейнера только на чтение. Как более правильно (эффективнее) это сделать?

В каких случаях следует использовать передачу ссылки на контейнер (как в f1), а в каких случаях итераторы (как в f2, почему-то в stl именно так):
void f1(const std::vector<int> & x){
    // ... used all elements of x
}

void f2(const std::vector<int>::const_iterator beg,const std::vector<int>::const_iterator end){
    // ... used all elements 
}

// ...
std::vector<int> y = {1,2,3};
f1(y);
f2(y.begin(),y.end());
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.