2016-12-19 13 views
0

私は次のコンストラクタがあります。どのようにすべての値をinitializer_listから分けることができますか?

JSON(initializer_list<myType> myList){ 

    if (end == NULL) { 
     for(int i=0;i < myList.size() ; i++){ 
      end = myList(i); /* fix this */ 
     } 

    } 

} 

endstruct myTypeあるとmyTypeは、次のstruct myTypeを指すと私は手動でそれらすべてを置くことができるようにinitializer_listからすべての個人myTypeを取得したい値struct myType *nextを持っています。 end = myList(i);と書くとエラーになりますが、個々の値を取得する正しい方法は何ですか?

+2

なぜ 'std :: list'を使うのではなく、あなた自身のリンクリストを動かしていますか? 'std :: list'は' std :: initializer_list'から作ることができます。 – NathanOliver

+0

[この 'std :: initializer_list'リファレンス](http://en.cppreference.com/w/cpp/utility/initializer_list)はうまくいけば助けになるはずです。 –

+0

私はmyTypeのベクトルを作成しようとしましたが、あまりにも多くの問題で走った、std :: listはより良い選択ですか? @Na –

答えて

0

initializer_listからオブジェクトをコピーする必要があります。オブジェクトを適切なコンテナとして使用するようには設計されていないため、インデックスに登録することはできません。

JSON(initializer_list<myType> myList){ 

    if (end == NULL) { 
     for(auto& elem : myList){ 
      end = elem; 

      // do something more with end? 
     } 
    } 

} 

しかし、end == NULLは空のリストをテストするための正しい方法ではないかもしれませんが、私は見ずにいることを知っているだろう:

ただし、forループでリストのメンバーにアクセスすることができます残りのcoe。

関連する問題