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

Вызов конструктора с несколькими параметрами при использовании push_back() в vector'е - C++

Восстановить пароль Регистрация
 
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
27.02.2012, 17:35     Вызов конструктора с несколькими параметрами при использовании push_back() в vector'е #1
Ситуация:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <vector>
class bar
{
public:
    bar();
    bar(int);
    bar(int, int);
    //<...>
};
//<...>
int main()
{
    std::vector<bar> bvec;
    bvec.push_back(/*...*/);  // Существует ли здесь способ вызвать bar(int, int)?
//<...>
}
Насколько я помню - нельзя, но вдруг как-то всё-таки можно...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2012, 17:35     Вызов конструктора с несколькими параметрами при использовании push_back() в vector'е
Посмотрите здесь:

C++ Меняют ли элементы в vector свои адреса при вызове метода push_back?
Ошибка при использовании конструктора C++
классы. ошибка при вызове конструктора с параметрами C++
C++ Vector . push_back
VisualStudio C++ vector<vector<int> > push_back() C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,309
27.02.2012, 17:40     Вызов конструктора с несколькими параметрами при использовании push_back() в vector'е #2
C++
1
2
3
4
5
6
int main()
{
    // .......
    bvec.push_back( bar(3, 2) );
    // .......
}
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
27.02.2012, 17:45  [ТС]     Вызов конструктора с несколькими параметрами при использовании push_back() в vector'е #3
Точно, аригато.
igorrr37
 Аватар для igorrr37
1594 / 1222 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
27.02.2012, 19:43     Вызов конструктора с несколькими параметрами при использовании push_back() в vector'е #4
emplace_back saves the extra copy or move operation required when using push_back
C++
1
bvec.emplace_back(3, 2);
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
27.02.2012, 20:45  [ТС]     Вызов конструктора с несколькими параметрами при использовании push_back() в vector'е #5
igorrr37, не могли бы вы немного рассказать про разницу между emplace_back() и push_back()?
К своему стыду я только сейчас о таком услышал...
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.02.2012, 20:51     Вызов конструктора с несколькими параметрами при использовании push_back() в vector'е #6
Whiteha, он в C++11
http://en.cppreference.com/w/cpp/con...r/emplace_back
Yandex
Объявления
27.02.2012, 20:51     Вызов конструктора с несколькими параметрами при использовании push_back() в vector'е
Ответ Создать тему
Опции темы

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