c++ - 如何在动态矩阵中创建主键

标签 c++ pointers vector dynamic primary-key

我不知道如何创建一个动态 std::vector,我想在其中分配用户名作为主键,并且每个用户名都是指向另一个动态 vector 的指针,该 vector 包含具有以下信息的结构:

struct message{
    int id;
    char *msg;
    const string time;
};

我附上一张说明性图片,以使其更清楚: Primary Key

其中用户名 vector 是指向前面提到的结构 vector 的主键。

我该如何定义它?

最佳答案

我更喜欢使用 map 而不是使用用户名 vector ,这将保证用户名保持唯一。

#include <map>
#include <vector>
#include <string>
#include <iostream>

struct message{
    int id;
    char *msg;
    const std::string time;
};


    int main()
    {
        std::map<std::string,std::vector<message *> > data;
        message message1,message2;
        message1.id  = 1;
        message1.msg = "Hi";

        message2.id  = 2;
        message2.msg = "Hello";
        std::vector<message *> messages;
        messages.push_back(&message1);
        messages.push_back(&message2);
        data["smith"] = messages;
        std::cout << (data["smith"]).at(0)->msg << std::endl;

    }

关于c++ - 如何在动态矩阵中创建主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36447870/

相关文章:

C++:指向包含子类的类的父指针

c++ - 为什么这个对象没有被销毁?

c++ - vector<bool>::operator[] 行为不当?

c++ - 对结构进行合并排序不起作用

c++ - 在 C++ 中组织链接到外部库

c - 该程序中的内存是如何分配的?

c++ - 从 vector 中删除对象会破坏 C++ 中另一个对象中的对象

c++ - C++ 中的 Eigen MatrixXd 推回

c++ - 如何开始用 C++ 编写音乐可视化工具?

c++ - 将 char**** 作为连续数据复制到 char* 变量