Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 01.12.2022
Сообщений: 25

Ошибка vector subscript out of range

08.06.2023, 20:05. Показов 518. Ответов 2
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
 
int main()
{
    int t, n, k;
    int p;
    cin >> t;
    for (int i = 0; i < t; ++i)
    {
        cin >> n >> k;
        vector<int> b, a;
        bool flag = true;
        for (int g = 0; g < n; ++g)
        {
            cin >> p;
 
            a.push_back(p);
        }
        for (int m = 0; m < n; ++m)
        {
            cin >> p;
 
            b.push_back(p);
        }
        for (int g = 0; g < n; ++g)
        {
 
            for (int h = 1; h <= k; ++h)
            {
                for (int r = 0; r < n; ++r)
                {
                    if (a[g] + k == b[r])
 
                    {
                        cout << b[r] << " ";
                        b.erase(b.begin() + r);
                        flag = false;
                        break;
                    }
                    if (a[g] - k == b[r])
                    {
                        cout << b[r] << " ";
                        b.erase(b.begin() + r);
                        flag = false;
                        break;
 
                    }
                }
                if (flag == false)
                {
                    break;
                }
            }
            flag = true;
        }
 
 
 
 
 
 
        a.clear();
        b.clear();
 
    }
 
}
Вам дан массив a
, содержащий прогноз погоды в Берляндии за последние n
дней. То есть, ai
— это предполагаемая температура воздуха в день i
(1≤i≤n
).

Также вам дан массив b
—температура воздуха, которая была в каждый из дней на самом деле. Однако, все значения в массиве b
перемешались.

Определите, в какой день была какая температура, если известно, что погода никогда не отличается от прогноза более чем на k
градусов. Другими словами, если в день i
настоящая температура воздуха равнялась c
, то всегда верно равенство |ai−c|≤k
.

Например, пусть задан массив a
= [1,3,5,3,9
] длины n=5
и k=2
и массив b
= [2,5,11,2,4
]. Тогда, чтобы значение bi
соответствовало температуре воздуха в день i
, можно переставить элементы массива b
так: [2,2,5,4,11
]. Действительно:

В 1
-й день |a1−b1|=|1−2|=1
, выполняется 1≤2=k
Во 2
-й день |a2−b2|=|3−2|=1
, выполняется 1≤2=k
В 3
-й день |a3−b3|=|5−5|=0
, выполняется 0≤2=k
В 4
-й день |a4−b4|=|3−4|=1
, выполняется 1≤2=k
В 5
-й день |a5−b5|=|9−11|=2
, выполняется 2≤2=k
Входные данные
Первая строка входных данных содержит целое число t
(1≤t≤104
) — количество наборов входных данных в тесте.

Далее следуют описания наборов входных данных.

В первой строке каждого набора входных данных записано два целых числа n
(1≤n≤105
) и k
(0≤k≤109
) — количество дней и максимальная разница между предполагаемой и реальной температурой воздуха в каждый из дней.

Во второй строке каждого набора входных данных записано ровно n
целых чисел — элементы массива a
(−109≤ai≤109
).

Во третьей строке каждого набора входных данных записано ровно n
целых чисел — элементы массива b
(−109≤bi≤109
).

Гарантируется, что сумма n
по всем наборам не превышает 105
, и что элементы массива b
всегда можно переставить таким образом, чтобы равенство |ai−bi|≤k
было верно для всех i
.

Выходные данные
В отдельной строке для каждого набора входных данных выведите ровно n
чисел — значения температуры воздуха в каждый из дней в правильном порядке.

Если существует несколько вариантов ответа — выведите любой из них.
входные данные
3
5 2
1 3 5 3 9
2 5 11 2 4
6 1
-1 3 -2 0 -5 -1
-4 0 -1 4 0 0
3 3
7 7 7
9 4 8
выходные данные
2 2 5 4 11
0 4 -1 0 -4 0
8 4 9
---------------------------------------------------------------------------------------
При выполнении программы, пишет, что vector subscript out of range. Подскажите пожалуйста что не так. При дебаге буквально на третьей прогонке массива а - ломается.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.06.2023, 20:05
Ответы с готовыми решениями:

Ошибка “vector subscript out of range”
Здравствуйте, при решении задачи с обработкой графов столкнулся с ошибкой vector subscript out of range, задача состоит в поиске...

Ошибка: Vector subscript out of range
Всю голову сломал, не вижу где ошибка...Выводит только первые 5 итераций, вместо 45... int ecc = 44; //Запись в массив...

Ошибка vector subscript out of range
Пишет &quot;vector subscript out of range&quot; Смысл этой задачи найти число с максимальной суммой делителей(всех) #include &lt;vector&gt; ...

2
фрилансер
 Аватар для Алексей1153
6462 / 5670 / 1131
Регистрация: 11.10.2019
Сообщений: 15,098
08.06.2023, 20:15
Лучший ответ Сообщение было отмечено Maxim_rus_nev как решение

Решение

Цитата Сообщение от Maxim_rus_nev Посмотреть сообщение
что не так
так написано же:
Цитата Сообщение от Maxim_rus_nev Посмотреть сообщение
vector subscript out of range

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

Не по теме:

Ещё можно дать осмысленные имена переменным :)

1
0 / 0 / 0
Регистрация: 01.12.2022
Сообщений: 25
08.06.2023, 20:34  [ТС]
Ну так у меня вектор как раз заполняется до значений переменной. Осмысленные имена - да. Сейчас нашёл примерную ошибку, спасибо. erase удалял элементы, а цикл бежал до прежнего
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.06.2023, 20:34
Помогаю со студенческими работами здесь

Ошибка vector subscript out of range
Всем корректного. Читаю Страуструпа. В конце главы есть задание: в первый вектор вводятся люди(их имена), попарно. Во второй вводятся их...

Ошибка: Vector subscript out of range
void BFS(vector&lt;vector&lt;int&gt;&gt; matrix) { vector&lt;int&gt; temp; print_matrix(matrix); queue&lt;int&gt; Q; int am = matrix.size(); int*...

Ошибка vector subscript out of range
Есть структура данных бор. Написана библиотека: #include &quot;pch.h&quot; #include &lt;iostream&gt; #include &lt;cstring&gt; #include...

Ошибка: Vector subscript out of range
Не могу разобраться ,подскажите в чем ошибка. #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;vector&gt; using namespace std; ...

Ошибка: Vector subscript out of range
Доброго времени суток! Переписывал задачу с джавы на плюсы, но столкнулся с некоторыми непонятными особенностями плюсов) Появилась ошибка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru