簡體   English   中英

這是組合std :: generate_n和std :: back_inserter的正確方法嗎?

[英]Is this correct way to combine std::generate_n and std::back_inserter?

在我的任務:)盡可能多地使用STL我想知道是否可以使用std :: generate和std :: back_inserter組合,以便我可以執行與以下代碼相同的操作:

static const size_t nitems=1024*1024;
std::string mrbig;
for (size_t pos=0; pos<nitems; ++pos)
    mrbig.push_back('a'+ (rand()%26));

我試過了

 std::generate_n(std::back_inserter(mrbig),nitems,[](){return 'a'+(rand()%26);});

它似乎工作正常,但我想確保我沒有弄亂一些東西。

generate_n要求其第一個參數滿足OutputIteratorback_insert_iterator執行該操作(其iterator_categoryoutput_iterator_tag )。

您的代碼可能存在的問題:

std::generate_n(std::back_inserter(mrbig),nitems,[](){return 'a'+(rand()%26);});

暫無
暫無

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

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