如何初始化 const std::vector<MyClass>
How to initialize const std::vector<MyClass>
>我有一个这样的容器类
class Container {
public:
Container(const std::string name, const double value)
: name(name), value(value),{};
const std::string name;
const double value;
};
我喜欢初始化const std::vector<Container>
.
这
const std::vector<Container> sets{{"foo", 0}, {"bar", 1}};
使用英特尔编译器(版本 15.0.3(GCC 版本 4.8.2 兼容性((和 C++11 启用(-std=c++11
(工作正常,这适用于 RedHat6,但在 Windows7 下失败。编译器完全相同,但前端是Visual Studio 2013。
我收到错误消息:
no operator "=" matches these operands
operand types are: Container = Container
_Right = _Move(_Tmp);
我需要编写自己的复制构造函数吗?
完整示例是
#include <vector>
#include <string>
class Container {
public:
Container(const std::string name, const double value) : name(name), value(value){};
const std::string name;
const double value;
};
int main() {
const std::vector<Container> sets{{"foo", 0.0},{"bar", 1.0}};
}
我尝试使用 VS2015 编译您的代码,它编译良好。
我认为您只是遇到了编译器错误。我建议将C++编译器升级到具有更好现代C++支持的较新版本。
附注:请注意,VS2015也支持Windows 7。
相关文章:
- EASTL矢量<向量<int>>连续的
- 如何创建一个类,以便向量工作 std::vector<MyClass<int>> v{ 1,2,3 };
- 反转C++ foo(MyClass &) vs foo(const MyClass &)
- 从 json 字符串将 QVariant 转换为 QList<MyClass>
- #include "MyClass.h" 和 #include ".myclass.h" 有什么区别
- MyClass obj = MyClass();'MyClass()'在这里指的是临时对象吗?
- 'return':无法从'const class myClass'转换为'class myClass &'
- 如何初始化 const std::vector<MyClass>
- "delete p"和"p->~MyClass()"之间的区别
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- 'class MyClass' 在尝试定义静态结构实例时不会命名类型
- 注意:候选:MyClass:MyClass(const MyClass&) 错误
- C 字符串比较“祝您好运”&gt;“再见”
- std::set<myClass*>排序
- 复制构造函数语法错误:myclass 没有成员 mymember
- 为什么将此对向量&lt; map&lt; int,int&gt;&gt;中的地图进行更新.失败
- 如何通过扩展以下类型特征来删除 decltype(&MyClass::funct) 部分?
- Qt C++ - 创建 QList<Myclass> - 不是参数 'T 的有效模板类型参数
- C :对矢量进行排序&lt; struct&gt;(结构有2个整数)基于结构的整数之一
- C 操作员&gt;&gt;与突变器过载