假设我有一个班级学生的向量,但问题的要求表明我不能在构造函数中将等级放在一起,所以我将不得不解决它.
我有可能在一个向量槽中有两个值吗?
例如,Student类和字符串成绩是我的参数.
vector<Student*, string> Students;
Run Code Online (Sandbox Code Playgroud)
所以,在一天结束的时候,如果我对矢量进行测试,我应该在一个插槽中获得学生和成绩.
这有用吗?如果是这样,我如何push_back值?
否则,还有另一种方法吗?
std::vector<std::pair<Student*, string>> students;
Run Code Online (Sandbox Code Playgroud)
甚至更好:
std::map<Student*, string> students;
Run Code Online (Sandbox Code Playgroud)
推动价值:
第一种情况:
students.push_back(std::make_pair(x,y));
Run Code Online (Sandbox Code Playgroud)
甚至更好(正如@snps建议的那样):
students.emplace_back(x, y);
Run Code Online (Sandbox Code Playgroud)
第二种情况:
students[x]=y;
Run Code Online (Sandbox Code Playgroud)
请注意,在第二种情况下,您无法添加具有相同Student*值的多个记录.如果你尝试它会写旧的.
| 归档时间: |
|
| 查看次数: |
8006 次 |
| 最近记录: |