Что возвращается при вызове emptyStack.top () - PullRequest
0 голосов
/ 23 декабря 2018

При вызове stack.top() с пустым стеком, что именно возвращается (значение, тип и т. Д.)?

#include <stack>
#include <iostream>
using namespace std;

int main() {
    stack<char> thing;
    sometype topChar = thing.top();
    cout << topChar << endl;
}

1 Ответ

0 голосов
/ 23 декабря 2018

top возвращает ссылку.Это эквивалентно вызову метода back базового контейнера.Как и следовало ожидать при попытке получить ссылку на то, что не существует, результат не определен.

cppreference , при обсуждении неопределенных состояний поведения:

нет никаких ограничений на поведение программы

Другими словами, может произойти все что угодно, поэтому вам следует избегать использования top в пустом контейнере.Всегда убедитесь, что контейнер не пустой при использовании top.

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