1

Тема: Дія з певним проміжком елементів вектора

Доброго дня!
В мене проблема. Допустимо що в нас є вектор чисел:
vector<int>numbers = { 2,6,8,4,5,3,1,9,45,26,13 };
і мені потрібно знайти суму елементів котрі ідуть від числа 8 до 26.
Як мені це зробити?

2

Re: Дія з певним проміжком елементів вектора

за допомоги ітераторів

3

Re: Дія з певним проміжком елементів вектора

Плюсувати в змінну sum всі елементи з індексами від 2 до 9 включно

4

Re: Дія з певним проміжком елементів вектора

grinyuk309 написав:

Плюсувати в змінну sum всі елементи з індексами від 2 до 9 включно

Гаразд а коли вектор досить великого розміру і ми не знаємо на якій позиції число 2 і 9?
Основне проблема в тому що мені виходить помилка: vector subscript out of range.
Про помилку начитався я в досталь але всеодно не розумію в чому причина помилки

5

Re: Дія з певним проміжком елементів вектора

C++20:

#include <iostream>
#include <ranges>
#include <vector>

int main()
{
    std::vector<int> numbers = { 2,6,8,4,5,3,1,9,45,26,13 };
    int s = 0;
    for(auto i: numbers | std::views::drop_while([](int x){return x!=8;}) 
                        | std::views::take_while([](int x){return x!=26;}) )
        s += i;
    std::cout<<s<<std::endl;
}
Подякували: leofun011

6

Re: Дія з певним проміжком елементів вектора

Ну й прочитайте, будь ласка.