c++14 相关问题

C ++ 14是2014年批准的C ++标准的名称。它基于以前的C ++ 11标准,改进了核心语言和标准库并添加了一些功能。

为具有对象向量的类编写参数化构造函数时出错

尝试为 B 类编写参数化构造函数时出现错误“”。 B 类持有 A 类对象的向量。请帮我解决这个问题。 #包括 我在尝试为 B 类编写参数化构造函数时收到错误“”。 B 类持有 A 类对象的向量。请帮我解决这个问题。 #include <iostream> #include <vector> #define NUMBER 10 class A { int x; public: A(int a) : x(a) {} }; class B { std::vector<A> vec[NUMBER]; public: B(); }; B::B() : vec(NUMBER, A(10)) {} int main() { B b; return 0; } 编译时出现错误: check.cxx: In constructor ‘B::B()’: check.cxx:20:10: error: expression list treated as compound expression in mem-initializer [-fpermissive] 20 | B::B() : vec(NUMBER, A(10)) {} | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ check.cxx:20:10: error: invalid initializer for array member ‘std::vector<A> B::vec [10]’ 另外,帮我写默认和复制构造函数?? 问题是std::vector<A> vec[NUMBER];定义了一个大小为NUMBER的array,元素类型为vector<A>. 要解决此问题,请将 std::vector<A> vec[NUMBER]; 替换为 std::vector<A>; 或替换为 std::vector<A> vec = std::vector<A>(NUMBER);,如下所示: 方法一 在这里我们将std::vector<A> vec[NUMBER];替换为: class B { std::vector<A> vec; // no need to use NUMBER here public: B(); }; 注意默认构造函数初始化了 vector 成员,因此无需在类内初始化程序中执行此操作(如上所示)。 方法二 这里我们使用类内初始化器. class B { std::vector<A> vec = std::vector<A>(NUMBER); //corrected syntax public: B(); }; 工作演示

回答 1 投票 0

不在直接上下文中的替换失败不会在 C++ 中引发硬错误

我是 C++ 模板的新手,刚刚学习 SFINAE 和 C++ 中的相关功能。 背景和代码 我正在阅读这里的帖子。在那篇文章中,作者试图实现 boost hana 的 is_...

回答 0 投票 0

我的代码错误 - 合并排序数组 - Leetcode - C++

我使用VS code编辑运行,在windows中通过MSYS2使用g++运行C++代码; 我的代码在我的本地环境中对于相同的测试用例工作得很好,但我不知道为什么我得到 r ...

回答 0 投票 0

从头文件中隐藏指针成员的实现。

我正在使用一个库 - nlohmannjson,并希望有一个成员指向json供内部使用。我想避免将整个库作为编译时的依赖项,所以我考虑使用...

回答 1 投票 0

在std::bind中引用是无用的?

/example void f(int &n1, int& n2) { n1++; n2++; } int main() { int n1 = 1, n2 = 2; auto bound1 = std::bind(&f, n1, std::ref(n2)); bound1(); / 1 3 std::cout &...。

回答 2 投票 0

如何在另一个模板函数中调用模板函数?

我试图用现代C++(第14版)写一个通用的打印函数,但模板printItem函数无法实例化。但模板printItem函数无法实例化。 void printItem(T t) { std::cout << *t

回答 1 投票 0

循环内声明

在for循环中,就像下面这样 for(int i=0;i) v(100); } 在这个循环中,我有一个疑问,i. 每一个循环都会重复声明向量吗?如果是,为什么不...

回答 1 投票 1

C++ endl()不含std::前缀或使用语句。

为什么这种没有命名空间限定符的endl()的使用会被编译?我在多个编译器上试过了,在这里搜索了好几页 "endl不带std::",我很疑惑......

回答 1 投票 0

C++ 为什么在定义重载和引用函数时,每个函数都要有一个引用限定符?

我不明白:为什么如果一个成员函数有一个引用限定符,那么所有具有相同列表的版本都必须有一个引用限定符。是不是因为创建了多个定义,当这个 ...

回答 1 投票 0

STL与算法

我知道这是个很愚蠢的问题。我作为一个初学者问这个问题,因为我正在学习DsAlgo。那么,让我们举一个简单的旋转一个排序数组的例子。有两种方法我可以 ...

回答 2 投票 0

constexpr变量必须通过一个常量表达式来初始化。

我是用Embarcadero Technology公司的C++Builder 10.3编程的,它使用的是c++17编译器。下面的代码不是我写的,它比我习惯的工作要复杂一些。我有 ...

回答 1 投票 0

从std::complex<MyType>到std::complex<double&gt的类型转换。

我有一个类MyType,实现了一个用户定义的算术类型。这个类提供了以下转换操作符 struct MyType { ... 操作符 double() { return to_double(); / ...

回答 1 投票 2

如何将一个二维数组的所有元素初始化为一个特定的值?

有没有类似于memset()的函数可以将二维数组中的所有元素初始化为某一数值? memset只能用于将数值初始化为0和-1。

回答 1 投票 1

在c++中没有匹配的 "operator<<"。

当我运行这段代码时,我得到以下错误 Screenshot erore 50:7: error: no match for 'operator<

回答 1 投票 0

基于智能指针的*内侧类型,对模板进行特殊化。

我有一个类,它封装了一个通用的 "智能指针"(可以是unique_ptr,shared_ptr等)。我试图对构造函数进行特殊化,以便调用相应的make_unique、make_shared等...。

回答 1 投票 0

使用boost::get失败的值

我所要做的就是理解这个异常的含义,一般来说,所以我不想附加任何代码。下面是完整的错误:libc++abi.dylib: terminating with uncaught exception of type......。

回答 1 投票 0

cv::Mat::split(args)的正确args。

我需要使用函数split(),它的签名是:void split(const Mat& src, Mat* mvbegin)我通过官方文档看到了这个签名。我尝试了下面的方法。...

回答 1 投票 0

从方程中找出最小C值

我们要在给定的x和y范围内使(A & C)*(B & C)的值最大化.其中C必须是最小的.

回答 1 投票 0

在lambda中访问自动参数的类型。

我在使用一个lambda函数来编写模板代码:auto import = [&](auto & value){ / Do some stuff }; 由于value实际上是一个std::vector,我需要访问它的value_type静态成员以...

回答 1 投票 3

从十进制数中获取特定的k位

我有一个数字x,我想从x中打印出k位的十进制,假设我有数字12 x = 12 k = 3 12的二进制是1100,k =3,所以我的新二进制将是100(十进制是8),即形式......

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.