в чем разница между использованием int и <int> - PullRequest
0 голосов
/ 12 октября 2019

Я недавно начал изучать стеки в C ++. Глядя на пример, я заметил, что они использовали следующее:

       void showstack(stack <int> s).

Мне было интересно, что сделал <>, и чем он отличается от простого использования int?

Ответы [ 4 ]

4 голосов
/ 12 октября 2019

На что вы смотрите: параметры шаблона .

По сути, stack - это шаблон, объявленный (в упрощенном виде) следующим образом:

template <class T>
class stack { /*...*/ };

Таким образом, stack не является классом, вы не можете говорить о типе стека . Он станет типом только после указания параметра шаблона;например: stack<int> - это стек целых чисел в этом случае.

1 голос
/ 12 октября 2019

stack, как и многие другие контейнеры, шаблон . Вам необходимо указать тип элементов, которые вы собираетесь хранить в контейнере.

template<
    class T, // this what you specified in your code
    class Container = std::deque<T>
> class stack;

В вашем коде нет стека, скомпилированного до тех пор, пока вы не используете один с типом, как вы.

0 голосов
/ 12 октября 2019

<> используются для шаблонов, которые сообщают классу, какие данные ожидать. Вы можете заменить int на string, и таким образом у вас будет стек строк.

Для получения дополнительной информации

0 голосов
/ 12 октября 2019

Это говорит о том, что showstack параметр stack из ints.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...