Как мне динамически создать очередь с базовой структурой данных списка в C ++? - PullRequest
0 голосов
/ 25 февраля 2012

Я хочу создать динамическую очередь (используя ключевое слово new) с базовой структурой данных списка в c ++, но я не могу понять синтаксис для нее. То, что у меня пока есть:

queue<int, list<int>> myQueue = new queue<int, 

но я не могу понять, чем закончить эту строку. Кто-нибудь может мне помочь? Спасибо

1 Ответ

6 голосов
/ 25 февраля 2012

Инструкция new возвращает указатель, поэтому вы не заканчиваете эту строку . Тип переменной должен быть указателем, если вы настаиваете на использовании new. И тип справа от new будет того же типа, что и тип указателя инициализируемой переменной.

queue<int, list<int> >* myQueue = new queue<int, list<int> >;

В общем, для динамического выделения любого типа X, вы просто пишете new X. Возможно, вы были немного озадачены тем, насколько сложно полное имя вашего типа (запятые, угловые скобки, несколько токенов и т. Д.). Вы можете упростить его с помощью typedef , чтобы присвоить имени однозначное имя:

typedef queue<int, list<int> > int_list_queue;

Тогда вы можете написать это:

int_list_queue* myQueue = new int_list_queue;

Если вам действительно не нужен указатель, тогда объявление проще:

queue<int, list<int> > myQueue;
// or
int_list_queue myQueue;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...