○mapによる連想配列

■連想配列とは

通常の配列は数字を添え字とした配列ですが連想配列は
文字列などを添え字として配列です

ary["test"]=○○;
○○=ary["test"];

上記のように配列の添え字を文字列で扱うことが出来ます


■連想配列として使うには

#include <map>	 		必要なヘッダファイル. 
map<TYPE,TYPE> data; 		TYPE型のキーと要素の宣言 
data.size() 			data[]の要素数を返す関数. 
data[N] 				配列name[ ]のキーNのデータ.
data.count(x)			xをキーに持つ要素の数を返す。
data.max_size()			最大サイズ(要素数の上限)を返す。
**********************************************************************

■(string stringの例)

#pragma warning( disable : 4786 )//警告を止める

#include <stdio.h>
#include <string>
#include <map>

int main(){
	std::map<std::string,std::string> data;

	data["a"]="AA";
	data["b"]="BB";
	data["c"]="CC";
	data["d"]="DD";
	data["e"]="EE";

	if(data.count("b")) printf("%s\n",data["b"].c_str());else printf("該当なし\n");
	if(data.count("x")) printf("%s\n",data["x"].c_str());else printf("該当なし\n");

	return 0;
}

○結果
BB
該当なし

■(CString CStringの例)
	#include <map>

	std::map<CString,CString> data;

	data["inaba"]="いなば";//値を入れます
	data["minoru"]="みのる";
	
	//data.count("") キーの要素の数
	if(data.count("inaba")) printf("%s\n",data["inaba"]); else printf("%s\n","該当なし");
	
	data["inaba"]="稲葉";//変更も可能

	if(data.count("inaba")) printf("%s\n",data["inaba"]); else printf("%s\n","該当なし");

	data.erase("inaba");//キーの位置の要素を削除

	if(data.count("inaba")) printf("%s\n",data["inaba"]); else printf("%s\n","該当なし");

	printf("現在の要素数は%dです\n",data.size());

	printf("要素数の上限は%dです\n",data.max_size());

○結果
いなば
稲葉
該当なし
現在の要素数は1です
要素数の上限は536870911です

(int CStringの例)------------------------------------------
	std::map<int,CString> data;

	data[2]="2です";//値を入れます
	data[3]="3です";
	
	//data.count("") キーの要素の数
	if(data.count(1)) printf("%s\n",data[1]); else printf("%s\n","該当なし");
	if(data.count(2)) printf("%s\n",data[2]); else printf("%s\n","該当なし");

○結果
該当なし
2です

■(CString intの例)
	std::map<CString,int> data;

	data["2です"]=2;//値を入れます
	data["3です"]=3;
	
	//data.count("") キーの要素の数
	if(data.count("1です")) printf("%d\n",data["1です"]); else printf("%s\n","該当なし");
	if(data.count("2です")) printf("%d\n",data["2です"]); else printf("%s\n","該当なし");

○結果
該当なし
2



▲トップページ > Windows と C++