How can I concisely initialize a safe collection in C++?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
C++: Easiest way to initialize an STL vector with hardcoded elements
我现在正在学习C++,我正在寻找一种快速、容易地初始化每个元素的不同值的"安全"集合(如向量)的方法。我已经习惯了Python的简明列表/元组初始化,我想知道C++中是否有一个等价的语法技巧或集合类型。
例如,如果我想在python中初始化唯一付款对象列表,我可以这样做:
1 | payments = [Payment(10, 2), Payment(20, 4), Payment(30, 6)] |
然而,为了初始化C++中的支付结构向量,我需要编写这样的内容:
1 2 3 4 5 6 7 | Payment tempPayments[] = { {10, 2}, {20, 4}, {30, 6} }; vector<Payment> examplePayments(tempPayments, tempPayments + sizeof(tempPayments) / sizeof(Payment)); |
有没有一种更简单的方法来初始化具有独特结构的向量,或者另一种更方便的安全集合?
查看boost.assign,尤其是列表。它允许您使用以下代码初始化集合:
1 | const vector<int> primes = list_of(2)(3)(5)(7)(11); |