[問題] C++11以後對array的for loop是否檢查邊界
昨晚編修13誡的時候突然想到,
C++11之後我們可以優雅地取出vector或array的element。
//vector:
std::vector<int> v = {0, 1, 2, 3, 4, 5};
for(const int &i : v) // access by const reference
std::cout << i << ' ';
std::cout << '\n';
//array:
int a[] = {0, 1, 2, 3, 4, 5};
for(int n: a) // the initializer may be an array
std::cout << n << ' ';
std::cout << '\n';
請問這是否表示C++11以後已經增加了邊界檢查的動作?
還是他是用其他的方法去實踐以上的作法?
(因為13誡-2有強調C/C++不會去檢查邊界,如果有邊界檢查那這個就要修一下了)
感謝
--
個人網頁:http://gnitnaw.github.io/
以後在C_and_CPP或LinuxDev發表的文章都會放一份在這邊。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 86.209.153.222
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1463054856.A.955.html
※ 編輯: wtchen (86.209.153.222), 05/12/2016 20:07:48
→
05/12 20:17, , 1F
05/12 20:17, 1F
→
05/12 20:19, , 2F
05/12 20:19, 2F
→
05/12 20:22, , 3F
05/12 20:22, 3F
→
05/12 20:24, , 4F
05/12 20:24, 4F
→
05/12 20:26, , 5F
05/12 20:26, 5F
→
05/12 20:27, , 6F
05/12 20:27, 6F
→
05/12 20:29, , 7F
05/12 20:29, 7F
→
05/12 20:29, , 8F
05/12 20:29, 8F
→
05/12 20:31, , 9F
05/12 20:31, 9F
→
05/12 20:33, , 10F
05/12 20:33, 10F
→
05/12 20:33, , 11F
05/12 20:33, 11F
→
05/12 20:34, , 12F
05/12 20:34, 12F
→
05/12 20:34, , 13F
05/12 20:34, 13F
→
05/12 20:34, , 14F
05/12 20:34, 14F
→
05/12 20:35, , 15F
05/12 20:35, 15F
→
05/12 20:37, , 16F
05/12 20:37, 16F
→
05/12 20:42, , 17F
05/12 20:42, 17F
→
05/12 20:42, , 18F
05/12 20:42, 18F
→
05/12 20:43, , 19F
05/12 20:43, 19F
→
05/12 20:44, , 20F
05/12 20:44, 20F
→
05/12 20:44, , 21F
05/12 20:44, 21F
→
05/12 20:45, , 22F
05/12 20:45, 22F
→
05/12 20:47, , 23F
05/12 20:47, 23F
→
05/12 20:49, , 24F
05/12 20:49, 24F
推
05/12 21:00, , 25F
05/12 21:00, 25F
推
05/12 21:09, , 26F
05/12 21:09, 26F
→
05/12 21:10, , 27F
05/12 21:10, 27F
→
05/12 21:11, , 28F
05/12 21:11, 28F
→
05/12 21:11, , 29F
05/12 21:11, 29F