[問題] vector 使用問題
開發平台(Platform): (Ex: Win10, Linux, ...)
mac
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
c17
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
null
問題(Question):
想要 new vector<int>() 之後 access vector
餵入的資料(Input):
null
預期的正確結果(Expected Output):
1
錯誤結果(Wrong Output):
沒有運算子 "=" 符合這些運算元 -- 運算元類型為: std::__::vector<int,::std::__1::allocator<int>> = int
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
vector<int> *v;
v = new vector<int>(5);
v[2] = 1; // 這裡開始錯
cout << v[2];
補充說明(Supplement):
剛開始從 C 轉 C++,很不習慣用已經寫好的東西(不懂裡面怎麼運作QQ)
1. 我在想是不是因為 vector 因為是動態的,記憶體位址跟陣列不一樣,不會連續配置
所以我宣告 vector 指標之後,v[2] 就真的是 v 記憶體位置開始的第三格,而不是真正意義上 vector 資料結構的第三格
2. 這樣就牽扯到 vector 內部怎麼寫,所以想在請問一下 vector 內部是不是像 linked list 一樣? 這樣 random access 是不是需要 O(n)?
3. 另外想問一下有沒有什麼資源是適合熟悉C語言,要轉 C++ 的。我目前是看 cplusplus.com 裡面一個一個看他的語法/機制,但內部怎麼運作還是不懂
(像是 set 我上網查才知道裡面好像是用 rbtree,為何不用 graph???複雜度應該更好)
不然就是去 github 上直接看C++資料結構的code(以前都用C自己刻,所以想說直接看C++怎麼刻會學比較快)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.184.16 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1599453301.A.B2D.html
推
09/07 13:01,
4年前
, 1F
09/07 13:01, 1F
→
09/07 13:01,
4年前
, 2F
09/07 13:01, 2F
我原本是寫在 class 裡面,初始化的時候給參數才決定 vector 大小
→
09/07 13:04,
4年前
, 3F
09/07 13:04, 3F
那這樣我為何不能 new 之後直接 access v[2] ?
→
09/07 13:04,
4年前
, 4F
09/07 13:04, 4F
→
09/07 13:04,
4年前
, 5F
09/07 13:04, 5F
→
09/07 13:05,
4年前
, 6F
09/07 13:05, 6F
不是用 union-by-rank + path compression 嗎? (其實說是 graph,但其實就 tree 只是不是平常寫的 tree)
※ 編輯: NTUmaki (1.171.184.16 臺灣), 09/07/2020 13:14:09
啊 應該說 disjoint set啦,跟數學的 graph有點搞在一起了><
※ 編輯: NTUmaki (1.171.184.16 臺灣), 09/07/2020 13:17:03
※ 編輯: NTUmaki (1.171.184.16 臺灣), 09/07/2020 13:19:17
→
09/07 14:10,
4年前
, 7F
09/07 14:10, 7F
→
09/07 14:11,
4年前
, 8F
09/07 14:11, 8F
推
09/07 15:09,
4年前
, 9F
09/07 15:09, 9F
→
09/07 15:09,
4年前
, 10F
09/07 15:09, 10F
推
09/07 15:12,
4年前
, 11F
09/07 15:12, 11F
嗯嗯 所以vector的變數名稱不能跟陣列一樣當成位址
→
09/07 15:24,
4年前
, 12F
09/07 15:24, 12F
推
09/07 15:26,
4年前
, 13F
09/07 15:26, 13F
→
09/07 15:29,
4年前
, 14F
09/07 15:29, 14F
感謝!
推
09/07 15:54,
4年前
, 15F
09/07 15:54, 15F
所以vector沒有預設把變數名稱當位址沒錯吧?
→
09/07 16:41,
4年前
, 16F
09/07 16:41, 16F
→
09/07 16:41,
4年前
, 17F
09/07 16:41, 17F
→
09/07 16:42,
4年前
, 18F
09/07 16:42, 18F
→
09/07 16:42,
4年前
, 19F
09/07 16:42, 19F
好的 感謝...
※ 編輯: NTUmaki (27.247.233.249 臺灣), 09/07/2020 16:43:00
※ 編輯: NTUmaki (27.247.233.249 臺灣), 09/07/2020 16:43:21
※ 編輯: NTUmaki (27.247.233.249 臺灣), 09/07/2020 16:43:55
※ 編輯: NTUmaki (27.247.233.249 臺灣), 09/07/2020 16:44:21
推
09/07 16:56,
4年前
, 20F
09/07 16:56, 20F
→
09/07 16:56,
4年前
, 21F
09/07 16:56, 21F
→
09/07 16:56,
4年前
, 22F
09/07 16:56, 22F
了解!感謝
※ 編輯: NTUmaki (27.247.233.249 臺灣), 09/07/2020 17:41:09
推
09/07 22:03,
4年前
, 23F
09/07 22:03, 23F
→
09/07 22:04,
4年前
, 24F
09/07 22:04, 24F
→
09/07 22:04,
4年前
, 25F
09/07 22:04, 25F
推
09/07 22:08,
4年前
, 26F
09/07 22:08, 26F
→
09/07 22:09,
4年前
, 27F
09/07 22:09, 27F
→
09/07 22:09,
4年前
, 28F
09/07 22:09, 28F
→
09/11 17:51,
4年前
, 29F
09/11 17:51, 29F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章