static的类型为类(类中也有vector)的vector初始化
时间: 2023-07-23 10:22:01 浏览: 88
C++11特性小结之decltype、类内初始化、列表初始化返回值
可以使用以下方式初始化一个`static`的类型为类(类中也有`vector`)的`vector`:
```cpp
#include <vector>
class MyClass {
public:
std::vector<int> inner_vec;
};
class MyOtherClass {
public:
static std::vector<MyClass> static_vec;
};
// 在类外定义静态成员变量
std::vector<MyClass> MyOtherClass::static_vec = {
{ {1, 2, 3} }, // MyClass对象1,inner_vec包含1、2、3
{ {4, 5} }, // MyClass对象2,inner_vec包含4、5
{ {6} } // MyClass对象3,inner_vec包含6
};
int main() {
// 在main函数中访问静态成员变量
for (const auto& obj : MyOtherClass::static_vec) {
for (const auto& num : obj.inner_vec) {
std::cout << num << " ";
}
std::cout << std::endl;
}
return 0;
}
```
在上面的代码中,`MyClass`表示一个带有`vector`成员变量`inner_vec`的类,`MyOtherClass`表示另外一个类,其中包含一个`static`的`vector`成员变量`static_vec`,其元素类型为`MyClass`。
在类外,需要对`MyOtherClass::static_vec`进行定义并初始化,可以使用花括号语法来初始化`static_vec`中的元素。在`main`函数中,可以通过`MyOtherClass::static_vec`来访问静态成员变量,并通过嵌套的循环遍历其中的元素和`inner_vec`成员变量。
阅读全文