结构向量内的结构向量
Posted
技术标签:
【中文标题】结构向量内的结构向量【英文标题】:Vector of structs inside of vector of structs 【发布时间】:2013-03-21 16:31:29 【问题描述】:想象一下 C++ 中的社交网络帐户数据库。每个帐户都有自己的用户名、级别(管理员等)、关注此帐户的用户列表以及向此帐户发送消息的用户列表。
问题是,我想计算每个单独用户收到的消息数,因此内部结构中的名称和计数必须链接在一起。
这是实现的好主意吗?
struct User
string name;
int level;
vector<string> followedBy;
struct MessagedBy
string name;
int count;
;
;
vector<User> users;
//@TODO vector of MessagedBy as an instance of User
如何在结构向量中创建结构向量?如何指向它?
【问题讨论】:
你有什么理由使用结构而不是类? @wittybear 结构是类。 我使用结构体还是类并不重要,我都可以。 顺便说一句,您可能希望允许人们更改姓名。使用额外的int id
来识别用户并在MessagedBy
和followedBy
中引用他们怎么样?
是的,这是一个很好的建议,克里斯蒂安。该软件实际上应该将用户输入转换为 GraphViz 语法,所以我想这次我不需要它。 ;)
【参考方案1】:
所以,你可能想要这样的东西:
struct User
string name;
int level;
vector<string> followedBy;
struct MessagedBy
string name;
int count;
;
vector<MessageBy> messages;
;
然后您可以使用:
cout << "Messages from: " << users[index].messages[otherindex].name << ":" << users[index].messages[otherindex].count;
【讨论】:
我的回答中确实包含了这一点...vector<MessageBy> messages;
以上是关于结构向量内的结构向量的主要内容,如果未能解决你的问题,请参考以下文章