结构向量内的结构向量

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 来识别用户并在MessagedByfollowedBy 中引用他们怎么样? 是的,这是一个很好的建议,克里斯蒂安。该软件实际上应该将用户输入转换为 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&lt;MessageBy&gt; messages;

以上是关于结构向量内的结构向量的主要内容,如果未能解决你的问题,请参考以下文章

使用 memset 初始化包含数组的结构向量

向量内的不可修改值?

向量(vector)

自然语言处理之词向量技术

SystemVerilog:从结构向量中,获取一个向量,该向量收集每个结构的一个字段

R语言数据结构-向量