10

私が書いている単純なプログラムのリストの内容を印刷したかったのです。組み込みのリスト ライブラリを使用しています

#include <list>

ただし、データをテスト/チェックするために、このリストの内容を印刷する方法がわかりません。どうすればいいですか?

4

5 に答える 5

24

最近のコンパイラ (少なくともいくつかの C++11 機能を含むもの) を使用している場合は、必要に応じてイテレータを (直接) 処理することを避けることができます。s のような「小さな」もののリストについては、次のようintにすることができます。

#include <list>
#include <iostream>

int main() {
    list<int>  mylist = {0, 1, 2, 3, 4};

    for (auto v : mylist)
        std::cout << v << "\n";
}

リスト内の項目が大きい場合 (具体的には、それらをコピーしたくないほど大きい場合)、ループ内で値の代わりに参照を使用する必要があります。

    for (auto const &v : mylist)
        std::cout << v << "\n";
于 2013-04-26T06:35:06.030 に答える
3

たとえば、intのリストの場合

list<int> lst = ...;
for (list<int>::iterator i = lst.begin(); i != lst.end(); ++i)
    cout << *i << endl;

リストを使用している場合は、イテレータにすぐに慣れる必要があります。

于 2013-04-26T06:04:41.157 に答える
2

イテレータを使用します。

for(list<type>::iterator iter = list.begin(); iter != list.end(); iter++){
   cout<<*iter<<endl;
}
于 2013-04-26T06:04:15.903 に答える
1

これには、反復子と小さなforループを使用できます。リスト内の値を出力しているだけなので、反復子によって参照されるオブジェクトを誤って変更するのを防ぐのconst_iteratorではなく、使用する必要があります。iterator

varリストである変数を反復処理する方法の例を次に示しますint

for (list<int>::const_iterator it = var.begin(); it != var.end(); ++it)
    cout << *it << endl;
于 2013-04-26T06:06:38.227 に答える