[問題] iterator 兩種方式印出來不一樣

看板C_and_CPP作者 (紅髮Aska)時間12年前 (2012/06/09 14:07), 編輯推噓0(005)
留言5則, 4人參與, 最新討論串1/1
vector <vector<string>> CommandVector vector < string > tmpvector tmpvector = CommandVector[1]; vector<string>::iterator P; for(P=tmpvector.begin();P!=tmpvector.end();P++) { cout<<*P<<endl; } for(P=tmpvector.begin();P!=tmpvector.end();P++) { printf("%s",*P); } 平平都是印 不過cout有給出正確結果 但是 printf就沒有 請問一下這樣的話P 是代表一個string的開頭pointer嗎? 倘若我想要 將這個P套用在另外一個我自己宣告的 map <string ,string>裡面 可以直接map[*P] 這樣來取值嗎 debug了很久都會當掉 不知道原因 所以上來問問各位大大 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.112.167

06/09 14:12, , 1F
printf 不吃 string, string 有個函數叫 c_str()
06/09 14:12, 1F

06/09 14:13, , 2F
printf 不能印物件的樣子
06/09 14:13, 2F

06/09 16:51, , 3F
不同時代的產物阿...
06/09 16:51, 3F

06/09 16:52, , 4F
map<T,T> 部分的程式碼勒?
06/09 16:52, 4F

06/10 10:04, , 5F
一個cstring, 一個是std::string.....轉一下再print
06/10 10:04, 5F
文章代碼(AID): #1FqkW_FG (C_and_CPP)