1. 程式人生 > >C++ 第一個demo練習,map會排序

C++ 第一個demo練習,map會排序

定義簡單結構體Plane

獲取控制檯輸入的內容

new一個Plane存入map。

將map裡所有的Plane的name輸出

typedef struct
{
	string name;
	int id;
	double longtitude;
	double latitude;
	double height;
	double dir;
	double pitch;
	double rolling;
	
}Plane;

map<string,Plane*> PlaneColl;
	while (1)
	{
		string str;

		//cin >> str ; //讀入一串字元,不能包括空格

		getline(cin,str); //輸入一行字元,可以有空格,以回車鍵結束
		Plane* p = new Plane();
		p->name = str;
		PlaneColl[p->name] = p;

		printf("\n當前集合包含:\n");
		map<string,Plane*>::iterator iter = PlaneColl.begin();
		int i = 1;
		for (;iter != PlaneColl.end();iter++)
		{
			Plane* tempPlane = iter->second;
			if(tempPlane)
			{
				printf("%d----PlaneName:%s\n",i,tempPlane->name.c_str());
				i++;
			}
		}

	}


	return 0;

總結:

1:getline要獲得string,注意引用#include<string>,否則會報錯

2:printf不能直接輸出string,C++版的cout可以直接輸出,要用printf,要使用.c_str(),否則會亂碼

3:map會根據key來只能排序,後加入的,遍歷時也許會跑到前面