0 / 0 / 1
Регистрация: 30.07.2012
Сообщений: 59
|
|||||||||||
1 | |||||||||||
Двумерный вектор. Не работает reserve()06.08.2018, 16:19. Показов 3007. Ответов 5
Метки нет (Все метки)
Пишу динамическую таблицу, элементы и размеры которой задаются из .txt.
Использую двумерный вектор. Но не получается сделать reserve() - size() показывает всегда какие-то непонятные константные значения(непонятно откуда берутся). Прилагаю код:
0
|
06.08.2018, 16:19 | |
Ответы с готовыми решениями:
5
QVector::reserve() + std::vector::reserve() и добавление в начало Теория. Почему в данном случае copy() не работает после reserve(), но работает после resize()? Сделайте, чтобы двумерный вектор обогнал двумерный массив при заполнении случайными числами Двумерный вектор |
0 / 0 / 1
Регистрация: 30.07.2012
Сообщений: 59
|
|
06.08.2018, 18:44 [ТС] | 3 |
Возможно.
В заголовочном файле я объявил вектор. В cpp получаю из файла размеры вектора и инициализирую пустой вектор заданного размера. В дальнейшем заполняю его(что и не получается, так же, как и размер не задаётся). Я уже пользовался векторами таким образом, только это был вектор векторов типа char. Всё работало. Сейчас же не могу понять в чём проблема.
0
|
шКодер самоучка
|
|
06.08.2018, 21:51 | 4 |
Сообщение было отмечено MrMax836 как решение
Решение
MrMax836,
reserve выделяет память, но не меняет размер(количество элементов в векторе).resize как раз меняет размер и при необходимости перераспределяет память.Судя по коду в 46й строке нужен как раз resize, а не reserve Добавлено через 2 часа 52 минуты Из "странного" в коде: строки 26-27: 2 раза подряд getline(file, line) . Смысл?строки 46-49: можно заменить одной table.reserve(size); , так как цикл выполнится ровно 0 раз.метод parse : зачем вставлять в таблицу одну и туже строку rowNum раз?
1
|
0 / 0 / 1
Регистрация: 30.07.2012
Сообщений: 59
|
|
07.08.2018, 09:28 [ТС] | 5 |
Спасибо, помогло!
Это можно как-то по-другому записать? А почему 0 раз? Если он должен(ну, в моей задумке) выполниться столько раз, сколько указано в файле конфигурации. Да, тут действительно косяк, сам бы позже заметил, спасибо. Просто пробовал различные методы сплита Добавлено через 58 минут Это была опечатка! Даже когда указали, не сразу заметил, спасибо!
0
|
шКодер самоучка
|
|
07.08.2018, 09:33 | 6 |
1
|
07.08.2018, 09:33 | |
07.08.2018, 09:33 | |
Помогаю со студенческими работами здесь
6
Двумерный вектор, ошибка Двумерный вектор в классе Запись в двумерный вектор Двумерный вектор: запись по индексу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |