c++ - 在结构 vector 的结构 vector 的映射中存储数据

标签 c++ vector dictionary struct

这里是第一篇文章,我正在编写一些代码来尝试从多个 CSV 文件中读取,并将它们组合成一个“主”CSV 文件。 (编码方式:C++ Visual Studio 2013)

无论如何,这不是我遇到的麻烦。我在设置我想将这些值存储到其中的初始容器时遇到困难。到目前为止,这是我的设置:

#include <vector>
#include <map>
using namespace std;
    struct GradeCategories{
        string category;
        int grade;
    }; GradeCategories grade_cat;

    struct NameGrades{
        string name;
        vector<GradeCategories> v;
    }; NameGrades NG;

    typedef map<int, vector<NameGrades>> TheBook;

那么我该如何访问/输入数据到这个设置中呢?

我尝试过:

TheBook[12345017][NG.name = "Bob Jones"].push_back((grade_cat.category = "Exam 1")(grade_cat.grade = 95));

除此之外,我真的不知道如何访问它的内部组件。对 map 非常陌生,代码的这种深度“开始”有点让我失望。

因此,我们将不胜感激!谢谢:)

最佳答案

嗯,TheBook,将 int 映射到 NameGradesvector 上,这意味着:

TheBook[int] = vector<NameGrades>;

从一个 GradeCatagories 对象开始:grade_cat

grade_cat.category = "Exam";
grade_cat.grade = 95;

现在把它放在一个vector中:

vector<GradeCategories> vgc;
vgc.push_back(grade_cat);

现在我们可以继续NG:

NG.name = "Bob Jones";
NG.v = vgc;

现在我们可以将它插入一个vector:

vector<nameGrades> vng;
vng.push_back(NG);

最后,我们可以将它插入到 map 中:

TheBook tb;
tb[12345017] = vng;

关于c++ - 在结构 vector 的结构 vector 的映射中存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21946539/

相关文章:

c++ - 如何使用沙漏模式在库/模块边界之间传递 vector <T>?

c++ - 将输入读入 vector 对象

R如何在列表中找到向量子集的交集

android - osmdroid 覆盖以当前位置为中心

c++ - boost:从机器获取带有当前时区的当前 local_date_time

c++ - gtk 最小尺寸

C++ 如何传递多个参数?

matlab - 如何在向量中获取函数的多个输出?

python - 生成具有多个列的.CSV-使用字典吗?

python - 将复杂字典放入返回队列时,多处理进程不加入