我正在寻找一种方法来初始化std :: map中的第一个值,然后根据键初始化第二个值.这是我的代码:
#pragma once
#include <string>
#include <map>
class Student
{
public:
Student(
double Score_Maths,
double Score_Eng,
double Score_Chem,
double Score_Bio,
double Score_His
);
~Student();
private:
std::string Surname;
std::map<std::string, double> Subject_Scores = { {"Maths"}, {"English"}, {"Chemistry"}, {"Biology"}, {"History"} };
};
Run Code Online (Sandbox Code Playgroud)
我想要做的是,在类中已经有了这些键,然后使用构造函数初始化值,但当然在初始化地图时显示错误,任何帮助?
使用构造函数初始化值
您可以直接在构造函数中执行这两项操作:
class Student
{
public:
Student(
double Score_Maths,
double Score_Eng,
double Score_Chem,
double Score_Bio,
double Score_His
)
:
Subject_Scores({ {"Maths", Score_Maths},
{"English", Score_Eng},
{"Chemistry", Score_Chem},
{"Biology", Score_Bio},
{"History", Score_His} })
{
}
~Student();
private:
std::map<std::string, double> Subject_Scores;
}
Run Code Online (Sandbox Code Playgroud)
这仍然可以确保您的地图在整个课程生命周期内有效并初始化.
| 归档时间: |
|
| 查看次数: |
239 次 |
| 最近记录: |