Ребят помогите с чем связана такая ошибка? Почему выходит за рэндж. Заметил во многих программах моих появляется когда использую большие числа. В чем дело?
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n, q;
cin >> n >> q;
vector <int> arr(n * 2 - 1);
vector <int> arr1(q);
for (int i(0); i < q; i++)
{
cin >> arr1[i];
}
for (int i(0); i < q; i++)
{
arr1[i] = arr1[i] - 1;
}
int j = 1;
for (int i = 0; i < arr.max_size(); i++)
{
if (i % 2 == 0)
{
arr[i] = j;
j++;
}
}
cout << endl << arr.capacity() << endl << endl;
int z = 1;
int i = arr.max_size() - 1;
if (arr.max_size() > 3)
{
while (i > 0)
{
if (arr[i] > 0)
{
while (z < arr.max_size() - 2)
{
if (arr[i - z] == 0)
{
swap(arr[i], arr[i - z]);
z = 1;
break;
}
else
{
z++;
}
}
}
i--;
}
}
else
{
while (i > 0)
{
if (arr[i] > 0)
{
while (z < arr.max_size())
{
if (arr[i - z] == 0)
{
swap(arr[i], arr[i - z]);
z = 1;
break;
}
else
{
z++;
}
}
}
i--;
}
}
for (int jok(0); jok < arr1.max_size(); jok++)
{
cout << arr[arr1[jok]] << endl;
}
return 0;
}
Так, на всякий случай - вы в курсе, что max_size()
возвращает не размер вектора, а сколько элементов он может содержать в принципе?
Вот вы и выскакиваете, мягко говоря, очень далеко...
Потому что у вас ошибки в вычислении индекса элемента. Например в цикле for (int i = 0; i < arr.max_size(); i++)
. Вместо max_size
должно быть просто size
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Требуется вызвать функции с различными типами данных (void, double, int) в другой функцииПример: Есть функции:
Почему когда я выписываю названия городов, выписывается лишь последнее записанное значение?
Как сделать сортировку вектора моего класса QVector <DbTrade>?
Пытаюсь прочитать длинный InputStream (с ~180к+ символов) Этим способом зависает в while: