Code Bye

C++11 range based for似乎不能处理指针数组

#include<iostream>
#include<iterator>
using namespace std;
int main()
{
    //int buf[10];//OK!
    int* buf=new int[10];
    for(int& i:buf)
        cout<<i;
    return 0;
}

这段代码,用gcc 的C++11编译出错,说”begin” was not declared in this scope
很奇怪,用int buf[10]数组的时候编译就没有问题,buf变成指向数组的指针就编译不过了。这是为什么?

解决方案

20

int*buf
的时候不知道buf的大小

20

for(int*& i:buf)

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C++11 range based for似乎不能处理指针数组