gvg*_*zio 2 c++ class vector object push-back
我知道在向量中推回对象的正确方法是声明同一个类的对象并将其作为方法push_back的参数传递给它.即类似的东西
class MyClass{
int a;
int b;
int c;
};
int main(){
std::vector<MyClass> myvector;
MyClass myobject;
myobject.a = 1;
myobject.b = 2;
myobject.c = 3;
myvector.push_back(myobject);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:可以推回仅传递对象值而不是另一个对象的对象吗?即类似的东西
class MyClass{
int a;
int b;
int c;
};
int main(){
std::vector<MyClass> myvector;
int a = 1;
int b = 2;
int c = 3;
myvector.push_back({a, b, c});
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Ale*_*exD 11
如果声明a,b,c如public,
class MyClass{
public:
int a;
int b;
int c;
};
Run Code Online (Sandbox Code Playgroud)
然后你可以使用列表初始化:
myvector.push_back({a, b, c});
Run Code Online (Sandbox Code Playgroud)
但是建立一个构造函数可能会更好
MyClass::MyClass(int a, int b, int c):
a(a), b(b), c(c)
{}
Run Code Online (Sandbox Code Playgroud)
myvector.emplace_back(a, b, c);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
258 次 |
| 最近记录: |