C++講座 第1回

オブジェクト指向とかのまえに,まずはSTLを使ってみましょう.

setとかイテレータとか. 2008-05-23にやった内容です.

ここに書いてあるソースは全くチェックしてないのでコンパイルできないかも.

vector

長さを変更できる配列のようなもの. push_back()で後ろに要素を追加できます. 要素へのアクセスは配列と同じです.

#include <vector>
#include <stdio.h>
using namespace std;

int main(){
	vector<int> v;
	v.push_back(65);
	v.push_back(8);
	v.push_back(3);
	v.push_back(8);
	printf("size: %d\n",v.size());

	// 中身を表示
	int i;
	for (i=0;i<v.size();i++)
		printf("%d\n",v[i]);

	return 0;
}

イテレータ

イテレータを使って中身を表示してみましょう. 先ほどの例と同じ結果になります.

	// 中身を表示
	vector<int>::iterator it;
	for (it=v.begin();it!=v.end();++it)
		printf("%d\n",*it);

set

重複しない集合を扱います. .count()である値を持った要素があるか高速に調べることが出来ます.

setは配列のようには参照できないので,イテレータを使う必要があります.

#include <set>
#include <stdio.h>
using namespace std;

int main(){
	set<int> s;
	s.insert(65);
	s.insert(8);
	s.insert(3);
	s.insert(8);
	printf("size: %d\n",s.size());
	if (s.count(65)) printf("65 is exist!\n");

	// 中身を表示
	set<int>::iterator it;
	for (it=s.begin();it!=s.end();++it)
		printf("%d\n",*it);
	
	return 0;
}

Texts

total: 1920  / today: 1  / yesterday: 0  / now: 1

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-09-22 (火) 17:37:58 (1307d)