天天看点

C++ 11的新用法之for循环

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起来吧,以后就不用迭代器了。

c++

继续阅读