设为首页 加入收藏

TOP

C++11 initializer_list 和 Range-based for loop 学习理解(二)
2019-08-23 00:39:20 】 浏览:88
Tags:initializer_list Range-based for loop 学习 理解
c& _Al = _Alloc())

// _Al参数是在 00933FCF 位置压栈的
// _Ilist参数是按值传递,将成员_First和_Last分两次压栈,对应下面4行
00933FE9  mov         edx,dword ptr [eax+4]  
00933FEC  push        edx  
00933FED  mov         eax,dword ptr [eax]  
00933FEF  push        eax  
00933FF0  lea         ecx,[numbers]  
00933FF3  call        std::vector<int,std::allocator<int> >::vector<int,std::allocator<int> > (0931168h)  

    for (auto num : numbers)

// std::vector<int,std::allocator<int> >::begin() 结果保存在 dword ptr [ebp-30h]
00933FF8  lea         eax,[numbers]  
00933FFB  mov         dword ptr [ebp-24h],eax  
00933FFE  mov         ecx,dword ptr [ebp-24h]  
00934001  call        std::vector<int,std::allocator<int> >::_Unchecked_begin (09311FEh)  
00934006  mov         dword ptr [ebp-30h],eax  

// std::vector<int,std::allocator<int> >::end() 结果保存在 dword ptr [ebp-3Ch]
00934009  mov         ecx,dword ptr [ebp-24h]  
0093400C  call        std::vector<int,std::allocator<int> >::_Unchecked_end (09312C1h)  
00934011  mov         dword ptr [ebp-3Ch],eax  

// 跳转 for 循环的条件比较
00934014  jmp         main+0BFh (093401Fh)  

// 迭代器加1
00934016  mov         eax,dword ptr [ebp-30h]  
00934019  add         eax,4  
0093401C  mov         dword ptr [ebp-30h],eax  

// eax = dword ptr [ebp-30h]
// eax 和 vector::end() 比较,如果相等则跳出循环
0093401F  mov         eax,dword ptr [ebp-30h]  
00934022  cmp         eax,dword ptr [ebp-3Ch]  
00934025  je          main+0E2h (0934042h)  

// 将 dword ptr [ebp-30h] 迭代器指向的整形数值取出来,放到 dword ptr [ebp-48h]
00934027  mov         eax,dword ptr [ebp-30h]  
0093402A  mov         ecx,dword ptr [eax]  
0093402C  mov         dword ptr [ebp-48h],ecx  
    {
        printf( "num = %d\n", num );

// 从 dword ptr [ebp-48h] 取出整形数值,压栈
// 将 "num = %d\n" 压栈
// 调用 printf
0093402F  mov         eax,dword ptr [ebp-48h]  
00934032  push     &n
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Bootstrap+PHP表单验证实例 下一篇php wamp基础环境搭建

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目