Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Класс vector: перебор элементов
Перебрать все элементы можно с помощью цикла for each
, итераторов и алгоритма for_each()
. Пример использования цикла for each
:
std::vector<int> arr(3);
// Заполняем массив значениями
int n = 1;
for (int &el : arr) {
el = n++;
}
// Выводим значения
for (int &el : arr) std::cout << el << ' ';
std::cout << std::endl; // 1 2 3
Если нужен доступ по индексу, то можно воспользоваться циклом for
:
std::vector<int> arr = {1, 2, 3};
for (size_t i = 0, j = arr.size(); i < j; ++i)
std::cout << arr.at(i) << ' ';
std::cout << std::endl; // 1 2 3
Пример перебора элементов с помощью итераторов и цикла for
в прямом и обратном порядке:
std::vector<int> arr = {1, 2, 3};
std::vector<int>::iterator it1, it2;
// Перебор в прямом порядке
for (it1 = arr.begin(), it2 = arr.end(); it1 != it2; ++it1) {
std::cout << *it1 << ' ';
}
std::cout << std::endl; // 1 2 3
// Перебор в обратном порядке
std::vector<int>::reverse_iterator it3, it4;
for (it3 = arr.rbegin(), it4 = arr.rend(); it3 != it4; ++it3) {
std::cout << *it3 << ' ';
}
std::cout << std::endl; // 3 2 1
Пример перебора элементов с помощью итераторов и цикла while
:
std::vector<int> arr = {1, 2, 3};
auto it1 = arr.begin(), it2 = arr.end();
while (it1 != it2) {
std::cout << *it1++ << ' ';
}
std::cout << std::endl; // 1 2 3
С помощью алгоритма for_each()
умножим значение каждого элемента массива на 2
, а затем выведем все значения в окно консоли:
// #include <algorithm>
std::vector<int> arr = {1, 2, 3};
// Умножаем все элементы на 2
std::for_each( arr.begin(), arr.end(),
[](int &a) { a *= 2; } );
// Выводим значения всех элементов
std::for_each( arr.begin(), arr.end(),
[](int &a){ std::cout << a << ' '; } );
std::cout << std::endl; // 2 4 6
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов