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

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

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

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

03.07.2012, 21:36. Просмотров 1117. Ответов 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;
}
Спасибо!
Миниатюры
АТД Стек. Различие между push() и emplace()  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2012, 21:36     АТД Стек. Различие между push() и emplace()
Посмотрите здесь:

C++ Динамическая память и стек,различие
C++ АТД Графы. Поиск суммы расстояний между городами.
C++ Программа добавляет введенный массив 5*5 в стек и выводит полученный стек двумя столбцами
Небольшое различие между printf и cout C++
В чем различие между компиляторами? C++
C++ В чем разница между push_back и push?
C++ multimap::emplace()
C++ Указатели на массивы: В чем принципиальное различие между объявлениями указателей?
Как правильно написать функцию push (положить в стек) C++
C++ Класс "Стек", метод push
C++ Стек. Подсчитать сумму элементов между максимальным и минимальным
Std::map::emplace C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2537 / 1302 / 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
7066 / 5243 / 263
Регистрация: 10.12.2010
Сообщений: 23,070
Записей в блоге: 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!
1256 / 1139 / 55
Регистрация: 21.04.2012
Сообщений: 2,361
Завершенные тесты: 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()
Ответ Создать тему
Опции темы

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