代码之家  ›  专栏  ›  技术社区  ›  Evan Kroske

如何简洁地初始化C++中的安全集合?[复制品]

  •  0
  • Evan Kroske  · 技术社区  · 14 年前

    可能重复:
    C++: Easiest way to initialize an STL vector with hardcoded elements

    我现在正在学习C++,我正在寻找一种快速、容易地初始化每个元素的不同值的“安全”集合(如向量)的方法。我已经习惯了Python的简明列表/元组初始化,我想知道C++中是否有一个等价的语法技巧或集合类型。

    例如,如果我想在python中初始化唯一付款对象列表,我可以这样做:

    payments = [Payment(10, 2), Payment(20, 4), Payment(30, 6)]
    

    然而,为了初始化C++中的支付结构向量,我需要编写这样的内容:

    Payment tempPayments[] = {
        {10, 2},
        {20, 4},
        {30, 6}
    };
    vector<Payment> examplePayments(tempPayments, tempPayments + 
        sizeof(tempPayments) / sizeof(Payment));
    

    有没有一种更简单的方法来初始化具有独特结构的向量,或者另一种更方便的安全集合?

    1 回复  |  直到 14 年前
        1
  •  3
  •   user200783    14 年前

    观察 Boost.Assign ,特别是 list_of . 它允许您使用以下代码初始化集合:

    const vector<int> primes = list_of(2)(3)(5)(7)(11);