23
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

vectorの最大値とそのindex取得

Last updated at Posted at 2019-04-13

はじめに

c++のvector配列の最大値とそのindexの出し方がすぐに思いつかなかったため、備忘録として記述。

ソースコード

iterator

iterator自体に知識がなかったのでこちらを参照しました。

  • vector::iterator, array::iterator はランダム・アクセス可能
  • list::iterator は両方向移動可能
  • forward_list::iterator は前方向のみ移動可能

色んなiteratorの種類があるんすね。

メイン処理

max_elementで最大要素を指す最初のイテレータを取得。
その後、iterator間の距離を求めるdistanceで要素の値を取得

std::vector<int>::iterator iter = std::max_element(x.begin(), x.end());
size_t index = std::distance(x.begin(), iter);

サンプルコード

#include<iostream>
#include<vector>
#include<algorithm>

int main(){
  std::vector<int> x;
  for(int i=0;i<10;i++){
    x.push_back(i);
  }

  std::vector<int>::iterator iter = std::max_element(x.begin(), x.end());
  size_t index = std::distance(x.begin(), iter);
  std::cout << "max element:" << x[index] << std::endl;
  std::cout << "max element:" << *iter << std::endl;
  return 0;
}

最後に

修士課程に進学してから、プログラミングを本格的に始めました。
というか、Quita初投稿です!訂正やこうしたらいいよなどの提案、様々なコメント待っています!!

引用

[vectorの指定したiteratorの要素番号を取得する] (https://teramonagi.hatenablog.com/entry/20130225/1361793892)

23
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?