ぼく用あれこれまとめ

STL使ってる?

最終更新:

bokuyo

- view
管理者のみ編集可

STL使ってる?

  • やべぇ、このページ。見返してみたら思った以上に、不正確(2012/11/08 現在)

STL使おうぜ。

  • C++を使ってるのに、Cライクな書き方しかできないなんてそんなのC++を使ってるとは言えないよ。
  • ってことで、C++使ってる感を出すためにみんなもSTL使ってね。
  • google先生で調べればすぐに使い方からなにまでがでてくるので詳しい使い方をここにまとめる気はないの。
  • 使ってて思ったこととかまとめるよ。


std::vector

#include <iostream>
#include <vector>

int main()
{
	std::vector<int> eureka(7);		//int eureka[7];
	eureka[1]    = 156;			//普通の配列みたく使えるよん
	eureka.at(2) = 256;			//こんな書き方もできるよ。

	//eurekaのサイズ(=7)が表示されるよ。
	std::cout << eureka.size() << std::endl;

	std::vector<int>::iterator renton;	//int* renton;
	renton = eureka.begin();		//renton = eureka;
	++renton;				//++renton;

	//156が表示されるよ。
	std::cout << *renton << std::endl;

	return 0;
}


std::set

  • 二分木。木構造。集合
  • 同じ要素を入れることはできない。
    • 同じ要素を入れたければ、std::multisetを使うといいよ。
  • find関数のあるリストと考えてもいいかも。

std::map

  • map::insert()の引数はちょっと面倒な書き方になる。
  • 配列みたくかけるから便利。


std::vector VS std::list

  • 実際に計ったよ。計算量とか計算できない系プログラマなんで実測万歳。
std::vector vs std::list
push_back() vectorのほうが速い. listは末尾挿入にvectorの1.25倍の時間がかかる.
random access vs iterator listにiteratorでアクセスするより、vectorの要素にランダムアクセスしたほうが0.98倍速かった.
iterator for文回してiteratorでアクセスも、listよりvectorのほうが速かった.

真偽不明な話

std::vector

  • 要素を取り出すことが強い
    • ランダムアクセスに強い
  • ポインタ型を格納したほうがいい

std::list

  • 要素の追加・削除に強い
    • ただし、std::vectorに比べ、末尾への挿入が異様に遅い??

.
記事メニュー
目安箱バナー