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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
03.07.2012, 21:36     АТД Стек. Различие между push() и emplace() #1
Здравствуйте!

Расталкуйте пожалуйста в чем заключается различие между двумя методами стека 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;
}
Спасибо!
Миниатюры
АТД Стек. Различие между push() и emplace()  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.07.2012, 21:51     АТД Стек. Различие между push() и emplace() #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)...)
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
03.07.2012, 21:56     АТД Стек. Различие между push() и emplace() #3
C++
1
#include "stack"
Это типа std::stack<> т.е. STL ?? и я чет не пойму emplace() это отКудВа такой метод?
http://www.cplusplus.com/reference/stl/stack/
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
03.07.2012, 21:58     АТД Стек. Различие между push() и emplace() #4
Цитата Сообщение от Avazart Посмотреть сообщение
чет не пойму emplace() это отКудВа такой метод?
http://en.cppreference.com/w/cpp/con.../stack/emplace
Yandex
Объявления
03.07.2012, 21:58     АТД Стек. Различие между push() и emplace()
Ответ Создать тему
Опции темы

Текущее время: 00:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru