可能重复:
C++: Easiest way to initialize an STL vector with hardcoded elements
我正在学习C ++,我正在寻找一种方法来快速轻松地初始化每个元素具有不同值的“安全”集合(如矢量)。我已经习惯了Python的简洁列表/元组初始化,我想知道C ++中是否存在等效的语法技巧或集合类型。
例如,如果我想在Python中初始化唯一的Payment对象列表,我可以这样做:
payments = [Payment(10, 2), Payment(20, 4), Payment(30, 6)]
但是,为了在C ++中初始化Payment结构的向量,我需要写这样的东西:
Payment tempPayments[] = {
{10, 2},
{20, 4},
{30, 6}
};
vector<Payment> examplePayments(tempPayments, tempPayments +
sizeof(tempPayments) / sizeof(Payment));
是否有更简单的方法来初始化具有独特结构的矢量,或者更方便的另一个安全集合?
答案 0 :(得分:3)
查看Boost.Assign,特别是list_of。它允许您使用以下代码初始化集合:
const vector<int> primes = list_of(2)(3)(5)(7)(11);