C++ 11的新用法之for循环
C++11推出了很多提升效率的关键字和用法,这让人写C++写出了Python的感觉,话不多少,今儿就来记录一下C++11中的for循环用法。
只访问不修改
我个人在写C++代码的时候经常用到STL中的容器,但是入容器容易,出容器巨麻烦,必须依赖迭代器进行循环访问,个人就觉得麻烦,但是自从有了C++11,让这一切变得简单起来。直接上代码感受。
- 之前
for (list<Group>::iterator it = m_g_A2llist.begin(); it != m_g_A2llist.end(); it++) { for (map<string, Signal>::iterator itor = it->sigmap.begin(); itor != it->sigmap.end(); itor++) { cout << *(itor->first.signame); } }
- 现在
for (auto each : g_A2llist) { for (auto each1:each.sigmap) { cout << each1.first.signame; } }
访问并修改
- 如果需要访问并修改对each加个&就好。
for (auto &each : g_A2llist) { for (int i = 0; i < m_Sig_list.GetItemCount(); i++) { each.sigmap[signame].cycle_time = MEASURE_CYCLE_TIME_20MS; } }
简直不能太好用,都get起来吧,以后就不用迭代器了。