2 / 2 / 1
Регистрация: 23.10.2013
Сообщений: 38
|
||||||||||||||||||||||||||
1 | ||||||||||||||||||||||||||
Vector subscript out of range (push_back, a не [])23.10.2013, 23:26. Показов 2597. Ответов 15
Метки нет (Все метки)
При попытке сделать push_back() вектору вылетает ошибка vector subscript out of range. Именно при пуше, не при операторе []. Ошибка в конструкторе Population (где именно обозначил). Ее там быть не должно, как я знаю. 2 заголовочных, 3 .сpp
ЗЫ. Программа моделирует работу Генетического Алгоритма. Код под спойлером Кликните здесь для просмотра всего текста
MAIN__CPP
Кликните здесь для просмотра всего текста
INDIVIDUAL__H Кликните здесь для просмотра всего текста
INDIVIDUAL__CPP Кликните здесь для просмотра всего текста
POPULATION__H Кликните здесь для просмотра всего текста
POPULATION__CPP Кликните здесь для просмотра всего текста
0
|
23.10.2013, 23:26 | |
Ответы с готовыми решениями:
15
Struct / Vector / Expression: vector subscript out of range Vector subscript out of range Vector subscript out of range Vector subscript out of range |
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
24.10.2013, 00:19 | 3 |
А какой вектор out of range? Я подозреваю, что не сам individual.
Я почти уверен, что ошибку надо искать в конструкторе копирования Individual. Там нужно внимательно посмотреть на индексы.
1
|
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
|
|
24.10.2013, 01:02 | 4 |
Добавлено через 5 минут Не по теме: но не в этом суть...
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
24.10.2013, 01:13 | 5 | |||||
все верно. в конструкторе копировния косяки
1
|
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
|
|
24.10.2013, 01:13 | 6 |
Ага.
gene, cpuNumber, cpuResult - все пустые. скорей всего через push_back надо сделать
1
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
24.10.2013, 01:20 | 7 |
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
24.10.2013, 01:21 | 8 |
да вообще какой-то хитрый конструктор копирования.
cpuNumber[i]=p.gene[i]; - так задумано или это глюк. если так задумано - то это тоже глючная задумка. если задумка была - полная копия один к одному - то тут и дефолтный, не надо свое писать, к тому же еще и кривое. ну или если очень хочется покопировать руками - то сгодятся встроенные в вектора операторы =. если они не подходят, потому что там в разное время значение статик членов разное - то это глюк дизайна.
0
|
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
|
|||||||||||
24.10.2013, 01:30 | 10 | ||||||||||
Попробуйте делать вместо
Хотя ладно, как я понял, ошибку уже нашли
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
24.10.2013, 01:33 | 11 |
щас и у вас найдем. вместо ресайза наверно резерв нужен. и тогда такой инсерт не прокатит.
иначе, если все таки ресайз, то размер вектора окажется в два раза больше, что как-то не по феншую.
0
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
24.10.2013, 01:40 | 12 |
Вызов кучи конструкторов по умолчанию не тру.
Я не совсем понял. Под размеров вектора подразумевается емкость?
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
24.10.2013, 01:44 | 13 |
нет. емкость это емкость - для этого reserve. размер - это количество элементов в векторе.
если сперва заресайзить вектор, а потом еще insert позвать, то количество элементов в векторе окажется несколько большим, чем ожидалось.
0
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
24.10.2013, 01:50 | 14 |
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||
24.10.2013, 02:08 | 15 | |||||
1
|
2 / 2 / 1
Регистрация: 23.10.2013
Сообщений: 38
|
|
24.10.2013, 06:28 [ТС] | 16 |
Да, спасибо, ребята. Ошибка в конструкторе копирования. Не знаю, каким образом, я его так написал. Можно закрывать
0
|
24.10.2013, 06:28 | |
24.10.2013, 06:28 | |
Помогаю со студенческими работами здесь
16
Vector subscript out of range vector subscript out of range Vector subscript out of range expression vector subscript out of range Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |