簡體   English   中英

將std :: list元素插入到std :: list

[英]Inserting a std::list element to std::list

    std::list <std::list <int>> mylist;
    std::list <int> mylist_;

    mylist_.push_back(0);
    mylist.push_back(mylist_);

是否可以在不創建 臨時 本地子列表(mylist_)的情況下將子列表插入列表(mylist),以及將類型(sub-list)用作列表(mylist)中的指針會更好,性能?

沒有臨時人員,您無法真正做到這一點,但是您可以更簡潔地做到這一點:

mylist.push_back(std::list<int>(1, 0)); // insert 1 element with value 0

正如JonM指出的那樣,臨時文件可能會被任何不錯的編譯器優化。

您可以使用數組:

int vals[] = { 1, 2, 3, 4 };
mylist.push_back(std::list<int>(vals, vals+sizeof(vals)/sizeof(vals[0])));

諸如Boost.Assign之類的實用工具可簡化以下工作:

mylist.push_back(boost::assign::list_of(1)(2)(3));

從性能角度看,這取決於您要執行的操作-如果例如,您希望列表多交,請使用(最好是智能的)指針以避免無休止的復制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM