1
3

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 3 years have passed since last update.

STLについてのメモ書き::vector

Posted at

#はじめに
情報理工学系の大学院生です。
STLについて調べた内容を自分なりに理解できるように書き溜めておこうと思って記事にしました。
わかりにくいところがあるかもしれません。その時は申し訳ございません。

#STLって?
C++の標準ライブラリに含まてている。standard template libraryの略称です。
templateと呼ばれるc++の機能を用いて変数の型の対する依存性の少ない機能が実装されています。
STLの一覧はこちらのWikipedia
一覧から、主にコンテナと呼ばれる値を格納するクラスとそれを扱うアルゴリズムや、イテレータが実装されているものになります。

#vector
vectorはコンテナと呼ばれるものです。
vectorのインスタンスは次のように作ります。

vectorの宣言、定義
std::vector<int> v = {2,3,5};

いかには簡単に使えるメソッドについて書いておきます。
ほかにもありますが、使い方がわかりやすいものだけ。
詳しく知りたい方は、referenceを参照してください。

###コンテナの状態

メソッド名 機能
size 要素の個数を返す
empty 要素が空かどうかを返す

###要素へのアクセス

名前 機能
operator[i] i番目の要素にアクセス
at(i) i番目の要素にアクセス

###イテレータの取得

  1. イテレータとは

イテレータ-Wikipedia
https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%86%E3%83%AC%E3%83%BC%E3%82%BF
イテレータ(英語: iterator)とは、プログラミング言語において配列やそれに類似する集合的データ構造(コレクションあるいはコンテナ)の各要素に対する繰り返し処理の抽象化である。実際のプログラミング言語では、オブジェクトまたは文法などとして現れる。

Cの配列(a[i])に対して繰り返し処理をするときにi++をしますが、それの抽象化のようなものです。
イテレータの主な構成要素については、以下の記事を見ると雰囲気がわかるかもしれません。
独自のイテレータを実装する
2. 機能の名前

名前 機能
begin 先頭の要素を指すイテレータを返す
end 末尾の要素を指すイテレータを返す
イテレータの使い方の例
if(std::vector<int>::iterator it = std::begin(v); it != std::end(v); it++){
   //処理。実体へのアクセスは*itで行う。
}

###要素の追加と削除

メソッド名 機能
push_back(element) 末尾への追加
pop_back() 末尾の要素を取り出し、削除
insert(iterator,element) 要素の挿入

#おわりに
今回書くにあたって文中での引用以外に以下の記事を参考にさせていただきました。
Standard Template Library
STLとは
アロケータ|Programming Place Plus C++編
イテレータの解説をするなんて今更佳代
本記事を見ていただいてありがとうございました。
より良い記事になるように精進していきます。

1
3
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
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?