这很好用:
#include <iostream>
#include <map>
using namespace std;
struct Bar
{
int i;
int f;
};
int main()
{
map<int, Bar> m;
Bar b;
b.i = 1;
b.f = 2;
m[0] = b;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我想让它更简洁,我会得到错误:
int main()
{
map<int, Bar> m;
m[0] = {1, 2};
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让结构初始化语法有效?我做错了,还是禁止地图?
你可以添加一个构造函数:
在这种情况下,我会说它比花哨的新初始化程序更好,因为它实际上让维护者看到地图中放置了什么类型,而不必去寻找它.
struct Bar
{
Bar(int anI,int aJ)
:i(anI), j(aJ)
{}
int i;
int j;
}
.....
m[0] = Bar(1,2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1612 次 |
| 最近记录: |