codeblocks:error: in C++98 ‘xxx’ must be initialized by constructor, not by ‘{...}’

    技术2022-07-11  72

    1.问题:在codeblocks 运行vetor时报错:error: in C++98 ‘xxx’ must be initialized by constructor, not by ‘{…}’ 2.解决:是因为编译的时候是编译默认用的是c++98标准。但是运行需要C++11。 按以下步骤调整: 选中之后点ok,就可以运行成功了。

    拓展: C++ 98 标准 C++标准第一版,1998年发布。正式名称为ISO/IEC 14882:1998[18] 。 绝大多数编译器都支持C++98标准。不过当时错误地引入了export关键字。由于技术上的实现难度,除了Comeau C++编译器export关键字以外,没有任何编译器支持export关键字。并且这个标准对现代的一些编译理念有相当的差距,有很多在高级语言都应当有的功能,它都没有。这也正是后来需要制定C++11标准的原因所在。 C++ 11 标准 C++标准第三版,2011年8月12日发布。由C++标准委员会于2011年8月12日公布,并于2011年9月出版。2012年2月28日的国际标准草案(N3376)是最接近于现行标准的草案(编辑上的修正)。C++11包含了核心语言的新机能,并且拓展C++标准程序库,并且加入了大部分的C++ Technical Report 1程序库(数学上的特殊函数除外)。此次标准为C++98发布后13年来第一次重大修正。 注意: C++11标准(ISO/IEC 14882:2011)与C11标准(ISO/IEC 9899:2011)是两个完全不同的标准,后者是C语言的标准。

    关于二维向量的定义:

    vector<vector<int> > A;//正确的定义方式 vector<vector<int>> A;//c++11之前这样定义是错误的,c++11之后支持这种定义方式
    Processed: 0.012, SQL: 10