[問題] vector 陣列找不到 size()

看板C_and_CPP (C/C++)作者 (廢文小神童)時間13年前 (2013/01/30 14:48), 編輯推噓1(1016)
留言17則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux G++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) vector 問題(Question): 小弟之前都不用pointer 最近在寫演算法因為a[][]這種的一直重複算地址速度太慢 現在要全部改成pointer 報應來了T.T 還請各位不吝指教 請問這樣宣告 vector<int> b[N]; 是表示b是二維陣列 裡面有N個vector嗎? 可是我在之後又把b的size印出來 應該會印出N 不過他不給我印 訊息是 test.cpp: In function 'int main()': test.cpp:30:13: error: request for member 'size' in 'b', which is of non-class type 'std::vector<int> [5]' 請問問題出在哪? 程式碼(Code):(請善用置底文網頁, 記得排版) http://pastebin.com/GP9zyy9Y -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.16.164 ※ 編輯: XXaa 來自: 140.109.16.164 (01/30 14:58)

01/30 15:11, , 1F
int a[10]; 我問你 a 一維還二維? a 可以用size()嗎?
01/30 15:11, 1F

01/30 15:31, , 2F
不太懂 我以為vector<int> b後面加[N]他會生出N個vector<int>
01/30 15:31, 2F

01/30 15:32, , 3F
跟int a[10]一樣 會生出 10個int這樣@@?
01/30 15:32, 3F

01/30 15:36, , 4F
是, 但是 array 並沒有 .size() 給你呼叫
01/30 15:36, 4F

01/30 15:41, , 5F
請問所以vector<int> b[N];這樣宣告出來的東西是?一個N格的
01/30 15:41, 5F

01/30 15:41, , 6F
int陣列b?
01/30 15:41, 6F

01/30 15:46, , 7F
N格的vector<int>...
01/30 15:46, 7F

01/30 15:50, , 8F
vector<int> b[N]; b.size()= ? int a[N]; a.size() = ?
01/30 15:50, 8F

01/30 15:50, , 9F
喔喔 意思是這樣宣告 是N格的vector<int> 不過他是用陣列包起
01/30 15:50, 9F

01/30 15:51, , 10F
來 所以沒有.size()可以呼叫?
01/30 15:51, 10F

01/30 16:22, , 11F

01/30 16:44, , 12F
感謝 我了解了~
01/30 16:44, 12F

01/30 19:56, , 13F
01/30 19:56, 13F

01/30 19:57, , 14F
用push_back就可以使用size
01/30 19:57, 14F

01/31 11:09, , 15F
你要二維可以用vector<vector<int>>
01/31 11:09, 15F

01/31 11:10, , 16F
vector<vector<int>(長度,初始值)>(長度)
01/31 11:10, 16F

01/31 11:15, , 17F
不過要寫演算法用vector會比type**慢很多吧
01/31 11:15, 17F
文章代碼(AID): #1H2C8kcm (C_and_CPP)
文章代碼(AID): #1H2C8kcm (C_and_CPP)