Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
#1

АТД Стек. Различие между push() и emplace() - C++

03.07.2012, 21:36. Просмотров 1193. Ответов 3
Метки нет (Все метки)

Здравствуйте!

Расталкуйте пожалуйста в чем заключается различие между двумя методами стека push() и emplace().

на первый взгляд и тот и тот добавляют элемент в стек.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include "stack"
 
using namespace std;
 
int main()
{
    stack<int> s;
    
    s.push(4);
    s.emplace(3);
    s.emplace(2);
    s.push(6);
 
    cout << "Stack -";  
    while(!s.empty())
    {
        cout << " " << s.top();
        s.pop();
    }
    
    system("pause >> null");
    return 0;
}
Спасибо!
0
Миниатюры
АТД Стек. Различие между push() и emplace()  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2012, 21:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос АТД Стек. Различие между push() и emplace() (C++):

Динамическая память и стек,различие - C++
подскажите в чем различие дин.памяти по отношению к стеку..и почему дин память лучше..?

Как правильно написать функцию push (положить в стек) - C++
Здравствуйте, господа. Не могу сообразить, как правильно написать функцию push (положить в стек). Ткните меня носом пожалуйста. Всё...

Создание АТД "Стек" на основе массива - C++
&quot;Реализуйте АТД “стек” на основе массива фиксированного размера для элементов, являющихся односвязными списками целых чисел (т.е., стек...

АТД Графы. Поиск суммы расстояний между городами. - C++
Здравствуйте! Нужна помощь! Всем известная задача и в сети конечно много разнообразных тем! но не одна из них не доведена до...

В чем разница между push_back и push? - C++
Подскажите пожалуйста, в чем состоит отличие Push_back и просто Push? Они оба насколько я знаю добавляют значение в конец, но например у...

Класс "Стек", метод push - C++
нужно ввести информацию из файла о ценах на процессоры в динамический массив записей и вывести ее ввиде таблицы. файл я прикрепил. он...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.07.2012, 21:51 #2
Emplace
Pushes new element on top of the stack. The element is constructed in-place, i.e. no copy or move operations are performed. The constructor of the element is called with exactly the same arguments, as supplied to the function.
Effectively calls c.emplace_back(std::forward<Args>(args)...)
1
Avazart
Эксперт С++
7188 / 5362 / 280
Регистрация: 10.12.2010
Сообщений: 23,666
Записей в блоге: 17
03.07.2012, 21:56 #3
C++
1
#include "stack"
Это типа std::stack<> т.е. STL ?? и я чет не пойму emplace() это отКудВа такой метод?
http://www.cplusplus.com/reference/stl/stack/
1
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
03.07.2012, 21:58 #4
Цитата Сообщение от Avazart Посмотреть сообщение
чет не пойму emplace() это отКудВа такой метод?
http://en.cppreference.com/w/cpp/con.../stack/emplace
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2012, 21:58
Привет! Вот еще темы с ответами:

В чем различие между компиляторами? - C++
Только учусь программировать и не знаю в каком компиляторе работать. В чем различие MS Visual c++ 6.0 и MS Visual 2008? Учусь по книге...

Небольшое различие между printf и cout - C++
Заметил, что если я вывожу максимальное или минимальное значение типа char через printf, то это выводится числом, а если через cout, то это...

Указатели на массивы: В чем принципиальное различие между объявлениями указателей? - C++
Вопрос по теории В чем принципиальное различие между данными обьявлениями? (+ правильно ли я понимаю, что 1и2, 3и4 это синонимы?) ...

multimap::emplace() - C++
При компиляции этого кода: #include &lt;iostream&gt; #include &lt;map&gt; using namespace std; int main () { multimap&lt;char,int&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.07.2012, 21:58
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru