Как использовать вектор запросов параметризованного класса в C ++?

0

Я пытаюсь использовать вектор deques пользовательского класса. У меня есть это:

std::vector<std::deque<ParamClass<Type1,Type2>>> lines;

Где ParamClass - это параметризованный класс с двумя параметрами класса. Вышеприведенная строка находится в заголовке (как приватная переменная) другого класса. Конструктор этого класса ничего не делает для переменных lines.

Позже в коде я стараюсь:

std::cout << lines.at(0).size() << std::endl;

Это должно печатать 0 (поскольку ничто не было добавлено к векторам в векторе. Тем не менее, я получаю segfault. Должен ли я как-то "инициализировать" свои призы или что-то еще?

  • 0
    Вы уверены, что вектор не пустой?
Теги:
vector
segmentation-fault
deque

1 ответ

3
Лучший ответ

Вы получаете доступ к элементу 0, но вы ничего не добавили, поэтому (0) пытается получить доступ к незаконной памяти

Вы должны убедиться, что first.size()> 0 first

  • 3
    Небольшое уточнение: он не будет обращаться к недопустимой памяти, at() генерирует исключение out_of_range.
  • 0
    Я не могу поверить, что я пропустил это. Спасибо, приму через несколько минут.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню