关于列表:如何在C ++中简明地初始化安全集合?

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);