问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vector可以存放自定义的结构体吗

发布网友 发布时间:2022-05-01 22:32

我来回答

3个回答

热心网友 时间:2022-06-24 09:57

vector可以存放自定义的结构体,方法有:放入这个结构体类型变量的副本或者放入指向这个结构体类型变量的指针。

Vector 类在 java 中可以实现自动增长的对象数组; vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。

vector是C++标准模板库中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。

热心网友 时间:2022-06-24 09:58

  如果要在Vector容器中存放结构体类型的变量,经常见到两种存放方式.
  方式一:放入这个结构体类型变量的副本。
  方式二:放入指向这个结构体类型变量的指针。
  假设结构体类型变量是这样的,

  [cpp] view plaincopyprint?
  typedef struct student{
  char school_name[100];
  char gender;
  int age;
  bool is_absent;
  } StudentInfo;

那么,方式一和方式二的实现分别如下所示:

  [cpp] view plaincopyprint?
  /*[方式一] 结构体放栈中,vector中放副本---------------------*/
  #include <iostream>
  #include <string>
  #include <vector>
  typedef struct student{
  char school_name[100];
  char gender;
  int age;
  bool is_absent;
  } StudentInfo;
  
  typedefstd::vector<StudentInfo> StudentInfoVec;
  
  void print(StudentInfoVec* stentinfovec){
  for (int j=0;j<(*stentinfovec).size();j++)
  {
  std::cout<<
  (*stentinfovec)[j].school_name<<"\t"<<
  (*stentinfovec)[j].gender<<"\t"<<
  (*stentinfovec)[j].age<<"\t"<<
  (*stentinfovec)[j].is_absent<<"\t"<<std::endl;
  }
  return;
  }
  
  int main(){
  StudentInfo micheal={"Micheal",'m',18,false};
  StudentInfo cherry={"Cherry",'f',16,true};
  StudentInfoVec studentinfovec;
  studentinfovec.push_back(micheal);
  studentinfovec.push_back(cherry);
  print(&studentinfovec);
  return 0;
  }
  方式一的输出结果

  [cpp] view plaincopyprint?
  /*[方式二] 结构体放入堆中,vector中放指针---------------------*/
  typedef struct student{
  char* school_name;
  char gender;
  int age;
  bool is_absent;
  } StudentInfo;
  
  typedefstd::vector<StudentInfo*> StudentInfoPtrVec;
  
  void print(StudentInfoPtrVec*stentinfoptrvec){
  for (int j=0;j<(*stentinfoptrvec).size();j++)
  {
  std::cout<<
  (*stentinfoptrvec)[j]->school_name<<"\t"<<
  (*stentinfoptrvec)[j]->gender<<"\t"<<
  (*stentinfoptrvec)[j]->age<<"\t"<<
  (*stentinfoptrvec)[j]->is_absent<<"\t"<<std::endl;
  }
  return;
  }
  
  int main(){
  
  StudentInfoPtrVec studentinfoptrvec;
  
  char* p_char_1=NULL;
  p_char_1=new char[100];
  strcpy(p_char_1,"Micheal");
  StudentInfo* p_student_1=new StudentInfo;
  p_student_1->school_name=p_char_1;
  p_student_1->gender='m';
  p_student_1->age=18;
  p_student_1->is_absent=false;
  studentinfoptrvec.push_back(p_student_1);
  
  char* p_char_2=NULL;
  p_char_2=new char[100];
  strcpy(p_char_2,"Cherry");
  StudentInfo* p_student_2=new StudentInfo;
  p_student_2->school_name=p_char_2;
  p_student_2->gender='f';
  p_student_2->age=16;
  p_student_2->is_absent=false;
  studentinfoptrvec.push_back(p_student_2);
  
  print(&studentinfoptrvec);
  delete p_char_1;
  delete p_student_1;
  delete p_char_2;
  delete p_student_2;
  return 0;
  
  }

热心网友 时间:2022-06-24 09:58

ocos2d-x vector能使用结构体吗 vector可以存放自定义的结构体,方法有:放入这个结构体类
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
春水的诗句有哪些(描写春水的好词好句) 关于春水的诗句有哪些? 描写春水的词句 形容春水的诗句有哪些 请问不联网怎么用电脑拍照呀,东芝 win7家庭普通版的? win7内置摄像头怎么打开啊,是东芝L600D 536的,问了一下卖电脑那里,她说... 东芝笔记本windows7怎么开视频 东芝笔记本windows7开视频方法 tn6破解器tn6怎么使用? 金银首饰及一些制品是机器雕刻的还是模板印的。 ospod行业模版分类 ...红色、黑色还要什么颜色,都是放什么垃圾的,记不太清了 自定义一个结构体,结构体用于描述学生信息,结构体元素需要有:学生ID,学生名称,联系电话,总成绩四个字段 数据结构定义结构体的问题如何解决? 自定义的结构体,只分配一个sizeof的空间,是不是不需要malloc,直接定义一个结构体变量即可 自定义一个结构体,采用malloc或new进行动态内存分布 英科医疗股票能买吗?英科医疗300677?英科医疗股票发行价每股多少钱? 电脑下载什么P图软件最好 英科医疗为什么下跌还有上涨余地吗?2021英科医疗三季度业绩预告?股票英科医疗300677? 英科医疗为什么突然跌?2021年英科医疗上半年业绩报告?300677英科医疗资金流向? 电脑p图软件什么比较好啊 英科医疗的今后走势?英科医疗股票宏观形势分析?300677英科医疗最近消息? 英科医疗股是什么板块?英科医疗上市股价是多少?英科医疗300677股票走势? 为什么我烤得蛋糕卷老是不蓬松,help,贝太厨房 英科医疗股现在可以入手吗?英科医疗一个月的股价?300677英科医疗最新消息? 2021年英科医疗能涨到多少?今日英科医疗300677股价如何?英科医疗股票一般价格? 英科医疗走势东方财富?2021年英科医疗走势预测?英科医疗股价300677? 历史上英科医疗最低价?300677英科医疗股票今日行情?英科医疗今年能涨多少? 英科医疗股三个月走势?英科医疗最新趋势分析?300677英科医疗近日股价? pdf 文件可以更改背景颜色吗?使用什么方法比较好? 英科医疗的股票是什么?英科医疗内在价值是什么?300677英科医疗股吧? 英科医疗今后走势?英科医疗股票分析与东方财富网?英科医疗300677的股价? c++如何对自定义结构体排序 MFC中在哪里添加自定义的结构体 怎么向dll中传递自定义结构体作为函数参数 OPNET 自定义结构体 如何让自定义的结构体和类高亮显示 c语言中如何自定义结构体数组长度 如何在接口定义语言IDL中定义自定义结构体类型 关于MPI 自定义结构体的问题 C 语言的结构体要怎么写 结构体里面有那些东西 谢谢 举实例 谢谢大家了 求助:Delphi自定义结构体,发送服务器,服务器接收信息 C语言怎样统计 文件中 自定义结构体类型数组 中的结构体类型数据个数 在com组件中,怎样把自定义的结构体作为,其接口方法的参数 C语言源文件之间的自定义类型(结构体)如何相互引用? 你好我的金帅冰箱第一次通电压缩机工作,完毕后就不在自动工作了。怎_百... W005桥推可以用什么来代替? 神钢挖掘机故障代码w005 什么 请问从广州火车站附近怎么坐车到云浮,最晚几点 晋AJW005这个车牌好不好? 云浮汽车总站有几点的车去连滩车站 yueaee yueaeew005可以放16内存卡吗?