牧羊人shepherd 2021-08-31 11:58 采纳率: 66.7%
浏览 638
已结题

C3074 无法使用圆括号初始化数组

build失败,没有提示文件中哪里出问题,调不出堆栈,只是指出错误出现在xmemory0这个系统文件,网上找是说数组不能用括号初始化,但是我没有用呀,都是vector,都是用push_back方法,这个要初始化吗?

img

img

错误的定位,但是定位不到我的代码里错在哪
img

  • 写回答

2条回答 默认 最新

  • bostonAlen 2021-08-31 15:38
    关注

    问题在于

    vector<vector<int[2]>> sides;
    改为
    vector<vector<int*>> sides;
    

    c++并不支持数组作为模板参数的类型。

    另外补充一点,其实本来像如下这样的使用都是不可行的,c++11做了模板右括号的优化

    "vector<vector<Mat>>"
    

    在泛型编程中,模板实例化有一个非常繁琐的地方,那就是连续的两个右尖括号(>>)会被编译器解析成右移操作符,而不是模板参数表的结束。C++11改进了编译器的解析规则,尽可能地将多个右尖号(>)解析成模板参数结束符。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月8日
  • 已采纳回答 8月31日
  • 创建了问题 8月31日