繁体   English   中英

结构体的时间复杂度

[英]Time complexity of struct

我在医院管理系统中使用 C++ 中的 struct 来保存患者记录并使用它来添加、列出、搜索和删除记录,例如,

struct details{
    char first_name[20];
    char last_name[20];
    int age;
    char gender[7];
    int phone;
    char doc_name[40];
};
details d[100];

void add()
{
   counter++;
   cout<<"\n\t\t\tRECORD NUMBER: "<<counter;
   cout<<"\n\t\t\t1.FIRST NAME: ";
   cin>>d[counter].first_name;
   cout<<"\t\t\t2.LAST NAME: ";
   cin>>d[counter].last_name;
   cout<<"\t\t\t3.AGE: ";
   cin>>d[counter].age;
   cout<<"\t\t\t4.GENDER: ";
   cin>>d[counter].gender;
   cout<<"\t\t\t5.PHONE: ";
   cin>>d[counter].phone;
   cout<<"\t\t\t6.DOCTOR: ";
   cin>>d[counter].doc_name;
   char add_another;
   cout<<"\n Add another record (Y/N)?:  ";
   cin>>add_another;
   if(add_another == 'Y')
     add();
   else
     menu();
}

我想知道使用 struct 的时间复杂度。 使用链表或地图或向量是保存记录的更好选择吗?

我建议您使用结构向量来保存数据。

接下来,我建议您创建std::map用于搜索数据库。 地图将是以下类型:
std::map<key_type, unsigned int>

其中key_type是您要搜索的字段的数据类型。
unsigned int将是向量的索引。

std::map变量称为索引表 这允许您在不修改数据向量的情况下对记录进行排序和高效搜索。

此外,如果可以,请将char *字段替换为std::string std::string类型更容易使用,尤其是std::vectorstd::map

最好的开发路径是使用现有数据库,而不是编写自己的数据库。 请记住,您有开发和测试时间。 现有数据库已经开发和测试; 你只需要访问它们; 不开发它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM