Создание вектора структур, резервирование пространства, C ++

0

Вот мое объявление структуры:

struct  HeapEntry {
    HeapEntry(int a, int b){
        id = a;
        key = b;
    }
    int id;
    int key;
};

Я хотел бы создать вектор для хранения объектов HeapEntry и зарезервировать для него память, так как я знаю, сколько объектов мне нужно хранить.

std::vector<HeapEntry> adjList();
adjList.reserve(200);

Линия adjList.reserve(200) создает ошибку, но выражение "выражение должно иметь тип класса". что здесь происходит?

благодаря

  • 0
    дубликат, см. здесь ( stackoverflow.com/questions/4175971/… )
  • 0
    Вы нашли очень интересную «особенность» C ++, самый неприятный анализ.
Показать ещё 1 комментарий
Теги:
initialization
vector

2 ответа

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

использовать:

std::vector<HeapEntry> adjList;

вместо этого:

std::vector<HeapEntry> adjList();
1

Вы хотели объявить это так?

std::vector<HeapEntry> adjList;
  • 0
    Я думаю, что сделал, какая разница?
  • 0
    Я считаю, что завершающие скобки являются недопустимыми в C ++. Вы используете только парены, если вам нужно передать аргументы конструктору.
Показать ещё 1 комментарий

Ещё вопросы

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