东莞最好的网站建设价格低,柳州建设网app,网站开发课程软件,wordpress目录重写前言C11这次的更新带来了令很多C程序员期待已久的for range循环#xff0c;每次看到javascript#xff0c; lua里的for range#xff0c;心想要是C能有多好#xff0c;心里别提多酸了。这次C11不负众望#xff0c;再也不用羡慕别家人的for range了。使用场景ex1#xff1…前言C11这次的更新带来了令很多C程序员期待已久的for range循环每次看到javascript lua里的for range心想要是C能有多好心里别提多酸了。这次C11不负众望再也不用羡慕别家人的for range了。使用场景ex1遍历字符串 std::string str hello, world;
for(auto ch : str) { std::cout ch std::endl;
} 遍历str输出每个字符同时用上auto简直是如虎添翼。ex2遍历数组 int arr[] {1, 2, 3, 4};
for(auto i : arr) { std::cout i std::endl;
} 不用知道数组容器的大小即可方便的遍历数组。ex3遍历stl 容器 std::vectorstd::string str_vec {i, like, google};
for(auto it : str_vec) { it “c”;
} 在这段程序中可以返回引用值通过引用可以修改容器内容。然后用到了初始化列表在下一篇文章中将会介绍。ex4遍历stl map std::mapint, std::string hash_map {{1, c}, {2, java}, {3, python}};
for(auto it : hash_map) { std::cout it.first \t it.second std::endl;
} 遍历map返回的是pair变量不是迭代器。
转载自《C11 之for 新解》