Re: [問題] C++中iterator的疑問
首先感謝各位先進的回覆!
目前的認知是, string * 跟 iterator 雖然概念上相同, 但是實際上在實做上是不同的
, 也就導致這兩個型態無法相容使用.
但是我在書上有看到一個範例:
vector<string> svec;
string sarray[4] = {"A","B","C","D"};
svec.insert(svec.end(), sarray, sarray+4);
為何這樣子的例子就可以成功執行, 因為sarray 不也是個 string * 嗎?
卻可以套用到型態為 iterator 的參數上?
先謝謝各位了 :) , 問題如果問的太淺, 敬請包涵 :)
※ 引述《nightcola (真實之眼)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: VC++
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: 問題(Question):
: 請問一下為何下述用法會造成錯誤
: vector<string> svec(10,"B");
: vector<string>::iterator it = &svec[0];
: 餵入的資料(Input):
: 預期的正確結果(Expected Output):
: 錯誤結果(Wrong Output):
: error C2440: '正在初始化' : 無法由 'std::basic_string<_Elem,_Traits,_Ax> *' 轉
: 換為 'std::_Vector_iterator<_Ty,_Alloc>'
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: 補充說明(Supplement):
: 在我的認知裡面, pointer也是一種iterator, 那為何可以使用:
: string *test = &svec[0];
: 但是卻不可以使用
: vector<string>::iterator it = &svec[0];
: 請各位先進解惑 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.254.64
推
03/13 17:15, , 1F
03/13 17:15, 1F
→
03/13 17:20, , 2F
03/13 17:20, 2F
→
03/13 17:20, , 3F
03/13 17:20, 3F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章