Вопросы по теме 'emplace'
Конструкция, подобная размещению для std :: vector
Представьте, что я хочу построить std::vector объектов фиксированного размера без конструкторов перемещения или копирования, таких как std::atomic<int> . В этом случае базовый класс std::atomic имеет конструктор с 1 аргументом, который...
252 просмотров
schedule
24.10.2021
Почему emplace_back быстрее push_back?
Я думал, что emplace_back будет победителем, когда сделаю что-то вроде этого:
v.push_back(myClass(arg1, arg2));
потому что emplace_back построит объект сразу в векторе, а push_back сначала создаст анонимный объект, а затем скопирует его...
49710 просмотров
schedule
24.03.2022
Эффективный и элегантный возврат emplaced unique_ptr
Я узнал ( благодаря комментарию StackOverflow ) недостаток безопасности в моем коде:
std::vector<std::unique_ptr<Item>> items;
template<class... TS> Item& create(TS&&... mArgs)
{
auto item(new...
736 просмотров
schedule
05.05.2022
зачем мне использовать piecewise_construct в map::emplace для конструкторов с одним аргументом некопируемых объектов?
Следующий код не будет компилироваться в gcc 4.8.2. Проблема в том, что этот код попытается скопировать конструкцию std::pair<int, A> , что невозможно из-за отсутствия struct A конструкторов копирования и перемещения.
Здесь gcc не...
8702 просмотров
schedule
29.05.2022
Почему нет emplace или emplace_back для std::string?
Я почти уверен, что видел этот вопрос здесь раньше, но я не могу найти сообщение, когда пытался выполнить поиск, и я не помню ответа.
Почему нет emplace или emplace_back для std::string ?
Я не думаю, что это связано с использованием char ,...
953 просмотров
schedule
10.06.2022
emplace_back to std::vector‹std::array› не работает
Меня удивило, что такую простую программу нельзя скомпилировать с помощью gcc, clang и msvc:
#include <array>
#include <vector>
int main()
{
std::vector<std::array<int, 3>> v;
v.emplace_back( 1, 2, 3 );
return...
72 просмотров
schedule
04.08.2022
ошибка компиляции unordered_map emplace
У меня есть следующий код в файле myclass.h :
typedef std::unordered_set< int, int> Parameters;
class MyClass
{
public:
void myFunction();
private:
Parameters* m_params;
}
Тогда myFunction выглядит следующим...
270 просмотров
schedule
02.10.2022
Вставить прямо в std::map пары
Почему этот код не компилируется?
std::map<int,std::pair<int,int>> m;
m.emplace(1,1,1);
Предполагая, что мы можем редактировать код std::map::emplace , возможно ли изменить его, чтобы предыдущий код стал действительным?
1180 просмотров
schedule
09.05.2023
Как размещать элементы при построении std::vector?
Я хочу построить std::vector с некоторыми элементами, имеющими эти элементы, созданные каким-то конкретным конструктором, а не конструктором по умолчанию. Другими словами, я хочу разместить элементы при построении вектора. Как я могу это сделать?...
1356 просмотров
schedule
22.03.2023
Невозможно emplace_back() использовать инициализатор в фигурных скобках для вектора векторов.
Это несколько связано с предыдущим вопросом, который я задал об использовании emplace_back в векторе пар. emplace_back() vs push_back при вставке пары в стандартный::вектор
Теперь мой вопрос касается использования emplace_back в векторе...
636 просмотров
schedule
15.05.2023
Почему Clang 12 отказывается инициализировать агрегаты способом C++20?
Насколько я понимаю, в режиме C++20 должна работать следующая программа:
#include <vector>
struct B{ int a0, a1; };
int main()
{
std::vector<B> bs;
bs.emplace_back( 0, 0 );
}
И это действительно так в Visual Studio 2019 и...
100 просмотров
schedule
05.12.2022