[問題] 一個有意思的問題 vector <const int>

看板C_and_CPP作者 (小乖)時間15年前 (2009/12/19 13:41), 編輯推噓3(306)
留言9則, 6人參與, 最新討論串1/3 (看更多)
code 很短我就直接貼了 ====================================================== #include <iostream> #include <vector> using namespace std; int main() { vector<const int> tmp; tmp.push_back(99); tmp[0] = 10; // 很神奇這裡竟然可以允許更動 cout << "tmp[0] is: " << tmp[0] << endl; } ======================================================= 我讓vector內的元素為 const 但 temp[0] 他竟然允許賦值 !! 請問各位高手有什麼想法 <( ̄oo, ̄)/ 補充一下: 這段 code 在 Visual Studio 2005 可以跑 我在 cygwin 上的 g++ (3.4.4) 上 compile 則會出現 compiler error!! 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.16.28

12/19 22:01, , 1F
測試一下 visual studio 2008 也可以過關...?
12/19 22:01, 1F

12/19 22:07, , 2F
我手邊沒有 Visual Studio 2008, 禮拜一會試試看
12/19 22:07, 2F

12/19 22:17, , 3F
很好奇 const int 內部要怎麼實作 push_back ?
12/19 22:17, 3F

12/19 22:41, , 4F
喔喔 我是說我剛剛測試的結果是過關 XDDD
12/19 22:41, 4F

12/19 22:51, , 5F
為啥不要求給初值阿 那個const int的vector?@@
12/19 22:51, 5F

12/19 22:59, , 6F
過關的意思是編譯器會發出 error 還是印出 tmp[0] is 10
12/19 22:59, 6F

12/19 23:49, , 7F
會印出 tmp[0] is 10, 編譯期完全沒有錯誤
12/19 23:49, 7F

12/19 23:56, , 8F
+1
12/19 23:56, 8F

12/20 00:38, , 9F
G++ 4.4 failed
12/20 00:38, 9F
文章代碼(AID): #1BBDVuQa (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BBDVuQa (C_and_CPP)