[問題] 陣列與vecto使用(記憶體)差異?

看板C_and_CPP (C/C++)作者 (兌現承諾)時間16年前 (2009/04/14 16:03), 編輯推噓3(306)
留言9則, 4人參與, 最新討論串1/1
不明白有關陣列及vector之間的差異 請看程式碼 #include <cstdlib> #include <iostream> #include <vector> using namespace std; void test(vector<double> &); int main() { vector<double> *a; a= new vector<double> (5); /* for(int i=0;i<a.size();i++) { a[i]=i; cout<< a[i] << "" ; } */ 以上槓掉的部分行不通, 不能由陣列的做法類比 test(*a); 這樣就ok了,沒有更直截了當的做 法嗎? delete a; system("pause"); return 0; } void test(vector<double> &a) { for(int i=0;i<a.size();i++) { a[i]=i; cout<< a[i] << "" ; } } 陣列與vector的差異沒搞清楚才會這樣. 請幫我釐清觀念吧. 謝謝囉! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.11.75

04/14 16:14, , 1F
vector<double> a(5); 試試
04/14 16:14, 1F

04/14 16:25, , 2F

04/14 16:25, , 3F
(*a)[i] = i; cout << (*a)[i] << "" ;
04/14 16:25, 3F

04/14 16:58, , 4F
謝謝啦 為什麼這樣就可以勒?
04/14 16:58, 4F

04/14 17:04, , 5F
基本的 pointer 和deref 觀念. 先打好根基吧...
04/14 17:04, 5F

04/14 17:05, , 6F
感覺是寫 Java/C# 的人?...
04/14 17:05, 6F

04/14 17:06, , 7F
a->operator [](i) 轉 (*a).operator [](i) 轉 (*a)[i]
04/14 17:06, 7F

04/14 17:09, , 8F
我只學一點c++ 入門等級的程度 也許有空再翻翻其它
04/14 17:09, 8F

04/14 17:10, , 9F
較為經典的書 或許觀念會在清晰一些吧
04/14 17:10, 9F
文章代碼(AID): #19v4DWrO (C_and_CPP)
文章代碼(AID): #19v4DWrO (C_and_CPP)