将数据存储在结构向量的结构向量的映射中
Storing data within a map of a vector of structs of a vector of structs
这里是第一篇文章,我正在研究一些代码来尝试从多个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));
除此之外,我真的不知道我将如何访问它的内部组件。对地图非常陌生,这种深刻的代码"开端"有点让我失望。
因此,任何帮助将不胜感激!谢谢:)
好吧,TheBook
,将int
映射到NameGrades
的vector
上,这意味着:
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);
最后,我们可以将其插入到地图中:
TheBook tb;
tb[12345017] = vng;
修复代码(#include <string>
)和TheBook
typedef(在>>
之间放一个空格)后,您可以像这样访问它:
TheBook aBook;
aBook[1] // Access map<int, THIS> > where int==1
[2] // Access vector<NameGrades>[THIS] where THIS==2
.v[3] // Access NameGrades.v[3]
.grade = 5;
如果你想在一本书中添加一些东西,可以这样做:
GradeCategories a,b,c,d;
NameGrades v1,v2;
v1.v.push_back(a); v1.v.push_back(b);
v2.v.push_back(c); v2.v.push_back(d);
vector<NameGrades> outerVector;
outerVector.push_back(v1); outerVector.push_back(v2);
TheBook aBook;
aBook[1] = outerVector;
相关文章:
- 将结构向量排序为子组
- 访问存储在向量C++中的结构的多态成员
- NLOHMANN 的 JSON 库将数组转换为结构向量
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 如何在 c++ 中创建结构向量的映射
- 带unique_ptr的结构向量
- C++ - 如何在结构向量中找到结构体一个成员的最大值?
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- 将 int 映射到 C++ 中的向量结构
- 如何在 c++ 中的向量结构中使用结构向量
- 无法将值存储到向量结构中
- 无法将.CSV文件读取为代表向量结构的类
- MPI,C,派生类型,向量结构
- 向量结构的打印成员
- 在 c++ 中对向量<结构 S> 进行二分搜索?
- 不需要删除向量<结构A*>
- 在C++中循环向量结构<string>
- 将字符串放入字符串的向量结构中
- 共享内存中的向量结构
- 我的向量结构没有像预期的那样迭代