1. ホーム
  2. c++

[解決済み] イテレータを使用してベクトル内を移動する方法は?(C++)

2022-03-15 18:34:13

質問

文字列のベクトルの要素に[]演算子や"at"メソッドではなく、"nth"にアクセスすることが目的です。私の理解では、イテレータはコンテナ内の移動に使用できますが、私はイテレータを使用したことがなく、私が読んでいるものは混乱しています。

どなたか実現するための情報を教えて頂ければ幸いです。ありがとうございます。

どのように解決するのですか?

を利用する必要があります。 begin end メソッドで vector クラスで、それぞれ最初と最後の要素を参照するイテレータを返します。

using namespace std;  

vector<string> myvector;  // a vector of stings.


// push some strings in the vector.
myvector.push_back("a");
myvector.push_back("b");
myvector.push_back("c");
myvector.push_back("d");


vector<string>::iterator it;  // declare an iterator to a vector of strings
int n = 3;  // nth element to be found.
int i = 0;  // counter.

// now start at from the beginning
// and keep iterating over the element till you find
// nth element...or reach the end of vector.
for(it = myvector.begin(); it != myvector.end(); it++,i++ )    {
    // found nth element..print and break.
    if(i == n) {
        cout<< *it << endl;  // prints d.
        break;
    }
}

// other easier ways of doing the same.
// using operator[]
cout<<myvector[n]<<endl;  // prints d.

// using the at method
cout << myvector.at(n) << endl;  // prints d.