2016-04-06 8 views
0

私はPrimaryKeysとしてUsernamesを割り当てる動的std :: vectorを作成する方法がわかりません。各ユーザ名は構造体を含む別の動的ベクトルへのポインタになりますそれは、以下の情報を持っている:動的行列に主キーを作成する方法

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

私はそれがより明確にするために、説明の画像を添付:ユーザ名のベクトルは、前述の構造体のベクトルに主キーを指している Primary Key

どうすれば定義できますか?

答えて

1

ユーザー名のベクトルを使用する代わりに、私はマップを使用することをお勧めします。これは、ユーザー名が一意であることを保証します。

#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; 

    } 
関連する問題