2016-12-12 13 views
0

私はクラスをセットで持っています。順序を変更する関数が必要ですが、通常の値はset<whatever, order>ではありません。私が次のコードで尊重する必要があるのはヘッダーだけです。注文を元のセットに戻してセットを戻すにはどうすればよいですか?注文を変更せずに注文を設定するカスタム注文

// ... class stuff 
public: 
    set<int> s; 
// ... 
set<int> ord(){ 
     set<int, Order> aux; 
     set<int> res; 

     set<int>::iterator it = s.begin(); 
     while(it != s.end()){ 
      aux.insert(*it); 
      it++; 
     } 

     // res = aux; 

return res; 
} 

ありがとうございます! :)

+1

あなたが何を求めているのか不明です。あなたは明確にしていただけますか? –

+0

あなたが何をしても、 'std :: set'ウィルラットはコンパレータに従って常に順序付けされます。あなたがどちらをやりたいのか分かりませんが、それに反する場合は 'std :: set'を使うことはできません。 – Quentin

+0

基本的に、私は 'set 'を返す関数を持っています。私はファンクタ( 'Order')で指定した別の順序を使う​​ためにその関数が必要です。問題は、 'set 'の結果が得られたら、戻り値の順序を変更せずに 'set 'に戻すにはどうすればいいですか? – Berbus

答えて

0

注文を変更することはできません。 - Quentin