Vector subscript out of range — Visual C++
bool scanSig(string path, int signCount)
InitConsole();
FILE *in1 = fopen(path.c_str(), «rb»);
if (!in1) cout for (int wsignCount = 0; wsignCount < signCount; wsignCount++)
//Convert string vector to int
istringstream iss(signBase[wsignCount]);
vector results(istream_iterator,
istream_iterator());
reverse(results.begin(), results.end());
vector signInt(results.size());
//cout int resultsSize = results.size();
for (int i = 0; i < results.size(); i++) < stringstream ss; ss > x; signInt[i] = x; > //unsigned char buf[26000]; unsigned char buf[MAX_PATH]; int z = 0; size_t count; //while (count = fread(buf, sizeof(buf[0]), 26000, in1)) < while (count = fread(buf, sizeof(buf[0]), MAX_PATH, in1)) < int i; for (i = 0; i < count; ++i) < if ((int)buf[i] == signInt[0]) < for (z = 1; z < resultsSize; z++) < if (buf[i - z] != signInt[z]) break; >if (z == resultsSize) < detectedSignature = signBase[wsignCount]; detectedPath = path; botFound = true; cout > sleepCount++; if (sleepCount == 3000) < Sleep(6); sleepCount = 0; >> > > fclose(in1); return 0;
подскажите где может быть проблема
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Ошибка «vector subscript out of range»
Доброго времени суток,форумчане!При запуске выскакивает ошибка из заголовка. Не понимаю,как исправить.
Сам код:
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
#include #include #include using namespace std; int main() { int SIZE, i = 0, a = 0, sum = 0, im = 0, jm = 0, sort; setlocale(LC_ALL, "ru"); srand(time(NULL)); cout "Введите размер вектора: " endl; cin >> SIZE; vector int> myVector(SIZE); for (i = 0; i SIZE; i++) { myVector[i] = -999 + rand() % 1000; cout myVector[i] endl; } for (auto elem : myVector) { if (elem 0) { sum += elem; } ++i; } cout "1. Сумма отрицательных чисел = " sum endl; int proizvedenie = 0; int max = myVector[0]; int min = myVector[0]; for (auto elem : myVector) { if (elem > max) { max = elem; im = myVector[i]; } if (elem min) { min = elem; jm = myVector[i]; } } if (im jm) { for (int i = jm; i im; i++) { proizvedenie *= myVector[i]; } } else if (jm > im) { for (int i = jm; i im; i++) { proizvedenie *= myVector[i]; } } cout "2. Произведение элементов, расположенных между максимальным и минимальным элементами = " proizvedenie endl; for (int i = 0; i SIZE; i++) { if (myVector[i] > myVector[i + 1]) { sort = myVector[i]; myVector[i] = myVector[i + 1]; myVector[i + 1] = a; } } for (int i = 0; i SIZE; i++) { cout "Отсортированный массив : " endl myVector[i] endl; } }
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Ошибка: Vector subscript out of range
Доброго времени суток! Переписывал задачу с джавы на плюсы, но столкнулся с некоторыми непонятными.
Ошибка vector subscript out of range
Есть структура данных бор. Написана библиотека: #include "pch.h" #include <iostream> #include.
Ошибка: Vector subscript out of range
Всю голову сломал, не вижу где ошибка. Выводит только первые 5 итераций, вместо 45. int.
Ошибка vector subscript out of range
Пишет "vector subscript out of range" Смысл этой задачи найти число с максимальной суммой.
Vector subscript out of range c как исправить
Ошибка — Vector subscript out of range
#include "Bank.h" Bank::Bank() < >Bank::Bank(const std::vector &payers) < for (auto &payer:payers) this->payers.push_back(payer); createHashTable(); > Bank::Bank(Bank &bank) < for (auto &payer:payers) this->payers.push_back(payer); createHashTable(); > Bank::~Bank() <> std::ostream &operator <<(std::ostream &os, const Bank &bank) < for (auto &payer : bank.payers) os << payer << std::endl; return os; >std::istream &operator>>(std::istream &in, Bank &bank) < Payer payer; while (in >> payer) < bank.payers.push_back(payer); >bank.createHashTable(); return in; > std::vector Bank::search(int payerAccount) < return hashTable.hashTable[payerAccount % hashTable.m]; >void Bank::createHashTable() < loop: hashTable.hashTable.clear(); hashTable.hashTable.resize(hashTable.m); for (auto &payer:payers) < int hash = payer.getPayerAccount() % hashTable.m; if (hashTable.hashTable[hash][0].getPayerAccount() != payer.getPayerAccount()) < hashTable.m += hashTable.k * hashTable.k; goto loop; >else < int i = 0; for (; i < hashTable.hashTable[hash].size(); i++) if ((hashTable.hashTable[hash][i]) == payer) break; if (i == hashTable.hashTable[hash].size()) hashTable.hashTable[hash].push_back(payer); >> >
В сам класс я с мейне передаю : fin >> bank;
Пример заполнения файла :
1 2 3
4 5 6
7 8 9
(hashTable.hashTable[hash][0].getPayerAccount() != payer.getPayerAccount()) — На этом моменте выскакивает ошибка : expression vector subscript out of range ( Полный текст ошибки на скриншоте во вложении )
Изображения
| Снимок.PNG (18.5 Кб, 104 просмотров) |
| Ramirez1995 |
| Посмотреть профиль |
| Найти ещё сообщения от Ramirez1995 |
Ошибка “vector subscript out of range” в цикле
При компиляции (1) выдает (2). Что делать? Как бороться? 
Отслеживать
15.9k 8 8 золотых знаков 52 52 серебряных знака 99 99 бронзовых знаков
задан 6 мар 2017 в 16:20
Алексей Завальнюк Алексей Завальнюк
11 1 1 золотой знак 1 1 серебряный знак 1 1 бронзовый знак
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Вы не можете применять оператор индексирования к вектору, который еще не имеет элементов.
Поэтому вам следует написать перед циклами
cin >> str; cin >> stb; vect.resize(str, std::vector(stb));
То есть сначала нужно создать элементы вектора, а затем лишь обращаться к ним по индексу.
Отслеживать
ответ дан 6 мар 2017 в 16:46
Vlad from Moscow Vlad from Moscow
44.8k 3 3 золотых знака 38 38 серебряных знаков 89 89 бронзовых знаков
Как вариант инициализации (при создании можешь размерность указать):
int a,b; cin>>a>>b; vector > mas(a,vector(b)); size_t size = mas.size(); for(size_t i = 0; i < size; ++i)< for_each(mas[i].begin(),mas[i].end(),[](int& k)>k;>); >
Отслеживать
ответ дан 7 мар 2017 в 6:42
vados inferno vados inferno
172 13 13 бронзовых знаков
- c++
- visual-c++
- vector
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.