从 C++11 开始,可以编写类似的东西
#include <vector>
#include <string>
struct S
{
S(int x, const std::string& s)
: x(x)
, s(s)
{
}
int x;
std::string s;
};
// ...
std::vector<S> v;
// add new object to the vector v
// only parameters of added object's constructor are passed to the function
v.emplace_back(1, "t");
是否有 C# 类似的 C++ 函数emplace
,例如emplace_back
容器类 ( System.Collections.Generic.List
)?
更新:
在 C# 中,类似的代码可能会写成list.EmplaceBack(1, "t");
而不是list.Add(new S(1, "t"));
. 最好不要记住类名并new ClassName
每次都在这种情况下编写。