タグ

タグ:C++

カテゴリ:

STLのマップを勉強しました。
参考サイトを元に早速プログラムを打ち込んでみました。
http://marupeke296.com/CPP_map.html

//------------------------------------------------
//        STL MAPのテスト
//------------------------------------------------
#include <stdio.h>
#include <map>
#include <string>
using namespace std;

//------------------------------------------------
//         メイン関数
//------------------------------------------------
void main() {

	//マップデータの宣言< キー, 値>
	map<string , int> mapData;

	//値の格納
	{
		//キーと値の設定
		string key("ガンダム");
		int value = 100;

		//pairオブジェクトの宣言
		pair<string , int> input(key , value);

		//値の格納
		mapData.insert(input);
	}

	//値の取り出し
	{
		//検索キーの宣言
		string key("ガンダム");

		//イテレータの宣言
		map<string , int>::iterator itr;

		//キーの検索
		itr = mapData.find(key);

		//検索キーが存在したら値を表示する
		if ( itr != mapData.end() ) {
			int value = itr->second;
			printf("key=%s value=%d\n",key.c_str() , value);
		}
	
	}
}

調べて分かったことを箇条書きにすると、

  1. 宣言は map< キーの型 , 値の型 > 変数 の形でやる
  2. 値の格納は insert() に pair< キーの型 , 値の型 > を入れる
  3. 値の取り出しは map.find(キー) で行う
てな感じです。vectorとかlistはコンテナとイテレータだけ覚えてればよかったけど、mapの場合は代入する時もpairという特殊な型を使うみたいです。またイテレータから値を取得するってところも同じだけど、mapの場合はキーと値のどちらを取得するかを指定する必要があります。参考サイトのコードを見る限り、firstがキー、secondが値となっているようです。どうでもいいけど、なんでこんな名前つけたんだろう。素直にkey,valueとかしてればいいのに。

Visual Studio 2010 Expressについて

カテゴリ:
ノートPCを買い換えるにあたって、開発環境の一新をしました。
前使っていたのがVisual Studio 2008 Express だったので、今回はその最新ヴァージョンである2010を導入しました。

使ってみた感じですが、インテリセンスなんかはかなり利くようになっていました。
体感ではeclipse並にレスポンスがいいです。
ただ、その代償としてかファイルサイズも2008以上に巨大になってしましました。
2008で46Mbだったプロジェクトファイルを2010に移行すると、何と100Mb近くになってしましました。

いろいろと調べてみると、どうやら.ipchファイルが重いということが分かりました。
という訳で早速ipchファイルをチェックしてみる。

110404_02


重い、重すぎる。
インテリセンスだけで50Mb近くもとってんじゃねえよ。

ただ、C++はJavaと違ってかなり自由な書き方ができるから、こうでもしないと推論ができないんだろうな。
実際、プロジェクトが軽かった頃のVisual Studi 2005ではちょっと複雑になると全然インテリセンスが利かなくなるし。

このページのトップヘ

見出し画像
×