1

次のようなリストが1つlist<T> result;あり、forループでは、すべてのパスで別のリストを生成します

    list<T> result;
    for(int i=0;i<10;i++){
       list<T> temp=generated_list();
        // here I want to add at the beginning of the result list values from temp list
    }

結果リストの先頭に生成されたリストを挿入する方法は? ループまたは連結によって新規作成し、結果を結果リストに設定するよりも良い方法はありますか?

4

1 に答える 1

5

std::list<T>::spliceメンバー関数は、やりたいことを行う最も効率的な方法です

list<T> result;
    for(int i=0;i<10;i++){
       list<T> temp=generated_list();
        result.splice(result.begin(), temp);
    }
于 2012-07-30T16:28:17.210 に答える