mitchan5
@mitchan5 (hiro Minami)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

vectorのイテレーター

解決したいこと

配列のイテレータについてです。
配列aに対して
count(a+l, a+r, x)でa[l], a[l+1], ..., a[r-1] の中で、x となるようなものの個数を得られますが、

vector aに対してはどのようにすればよいのでしょうか。
count(a.begin(), a.end(), x)はイテレーターitなどをa.bigin()で初期化してitを変化させて、
count(it, a.end(), x)とすれしかないでしょうか。

count(a.begin()+1, a.end()-1, x)などの簡単な書き方はありますでしょうか。

よろしくお願いいたします。

自分で試したこと

イテレータit(auto)をa.begin()で初期化して、it++とすれば、
count(it, a.end(), x)のようにして範囲を変えられることを試しました。

0

1Answer

最初に例として挙げたcount(a+l, a+r, x)と同様に扱えば良いだけのことです.aと書くと配列a[]の先頭アドレスを示します.コンテナvector<int> aの先頭アドレスも同様,a.begin()ですね,

したがって,

count(a + l, a + r, x);
count(a.begin() + l, a.begin() + r, x);

は同じです.

0Like

Comments

  1. @mitchan5

    Questioner

    すみません、、、
    何故かできないと勘違いしてました。

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

Your answer might help someone💌