C++ 第一個demo練習,map會排序
阿新 • • 發佈:2018-12-12
定義簡單結構體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來只能排序,後加入的,遍歷時也許會跑到前面