以下按预期打印“1 \ n 1 \ n 1”。我可以用它打印“2 \ n 2 \ n 2”的方式构造“ar”而不给它一个明确的初始化列表(... ar = {A(2),A(2),A(2) })?
#include <iostream>
#include <array>
class A {
public:
A(int i=1) : m_i(i) {};
int m_i;
};
int main() {
std::array<A, 3> ar;
for(auto& v : ar) {
std::cout << v.m_i << std::endl;
}
}
答案 0 :(得分:1)
不是真的; array
没有任何有趣的构造函数,例如vector
的{{1}}。
最接近的是使用vector(size_type, T = T())
,可能使用初始化lambda:
fill