我有以下結構:
struct A{};
結構 B{}; 結構 B
{
B(std::shared_ptr<A> a, int x)。a_(a), x_(x){}。
std::shared_ptr<A> a_;
int x_;
};
結構 C
{
C(std::vector<B> v, bool c){}。
};
我想在向量中插入一個C型別的物件,但下面的代碼不起作用:
我想在向量中插入一個C型別的物件。
std::vector<C> vecC;
vecC.emplace_back({std::make_shared<A>(), 2}, false) 。
另外這種方式對emplace_back來說沒有意義:
vecC. emplace_back(B{std::make_shared<A>(), 2}, false) 。
我應該如何在向量中插入一個C型別的物件?
uj5u.com熱心網友回復:
你忘了為std::vector的另一對大括號。另外,你需要告訴emplace_back()你傳遞給它什么樣的引數,所以你需要呼叫std::vector的構造器:
vecC. emplace_back(std::vector{ B{ std::make_shared<A>(), 2 }, 2 }。}, false)。)
另外,不要使用emplace_back(),而是使用push_back():
vecC. push_back({{std::make_shared<A>(), 2}}, false}) 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/333768.html
標籤:
下一篇:物體框架腳手架和遷移不起作用
