惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
A
About on SuperTechFans
Apple Machine Learning Research
Apple Machine Learning Research
The Register - Security
The Register - Security
Vercel News
Vercel News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
人人都是产品经理
人人都是产品经理
MyScale Blog
MyScale Blog
云风的 BLOG
云风的 BLOG
博客园_首页
U
Unit 42
T
Tailwind CSS Blog
G
GRAHAM CLULEY
F
Full Disclosure
V
Vulnerabilities – Threatpost
T
Tenable Blog
月光博客
月光博客
P
Privacy & Cybersecurity Law Blog
P
Privacy International News Feed
K
Kaspersky official blog
Scott Helme
Scott Helme
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
N
News and Events Feed by Topic
T
The Exploit Database - CXSecurity.com
N
News and Events Feed by Topic
有赞技术团队
有赞技术团队
Recent Commits to openclaw:main
Recent Commits to openclaw:main
L
LINUX DO - 最新话题
Recorded Future
Recorded Future
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Help Net Security
Help Net Security
The GitHub Blog
The GitHub Blog
Cisco Talos Blog
Cisco Talos Blog
SecWiki News
SecWiki News
P
Proofpoint News Feed
Security Latest
Security Latest
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
罗磊的独立博客
S
Security Affairs
M
MIT News - Artificial intelligence
L
LINUX DO - 热门话题
美团技术团队
Simon Willison's Weblog
Simon Willison's Weblog
T
Threat Research - Cisco Blogs
Stack Overflow Blog
Stack Overflow Blog
Forbes - Security
Forbes - Security
Hugging Face - Blog
Hugging Face - Blog
博客园 - Franky
V
Visual Studio Blog

博客园 - 周伟

域名解析文件hosts文件是什么?如何修改hosts文件? PowerDesigner 使用心得 实现TOMCAT服务下一个ip绑定多域名绑定的方法 CSV扩展类 C++导入导出CSV文件 WebService 随写 mysql相关文章收集 Linux下两种自动启动Tomcat的方法 linux自动启动mysql LINUX下mysql的大小写区分设置 Jdom使用指南 vector+struct在数据接口中的应用 UML用例中使用和扩展意义 枚举和字符串互转 单件模式的C++标准实现 设计模式 Add Crash Reporting to Your Applications with the CrashRpt Library 设计模式——单键模式(singleton)C++实现 Singleton的C++实现 及相关问题
struct+vector实现树结构
周伟 · 2009-07-02 · via 博客园 - 周伟

typedef struct tagGateInfo
{
 char GateName[20];
 int  GateValue;
}GateInfo;

typedef struct tagBeamInfo
{
 char BeamName[20];
 int BeamValue;
 vector<tagGateInfo> vGateInfo;

}BeamInfo;

typedef struct tagChannelInfo
{
 char ChannelName[20];
 int ChannelValue;
 vector<tagBeamInfo> vBeamInfo;
}ChannelInfo;

typedef struct tagDataInfo
{
 char DataName[20];
 int DataValue;
 vector<tagChannelInfo> vChannelInfo;
}DataInfo;

VectorTest::GetVector(tagDataInfo &stuDataInfo)
{
 CString strMsg = NULL;

 strMsg.Format("DataName%");
 strncpy(stuDataInfo.DataName,strMsg,strMsg.GetLength());
 stuDataInfo.DataValue = 10;

 for (int i=0;i<50;i++)
 {
  tagChannelInfo stuChannelInfo;
  memset(&stuChannelInfo,0,sizeof(tagChannelInfo));
  
  for (int j=0;j<40;j++)
  {
   tagBeamInfo stuBeamInfo;
   memset(&stuBeamInfo,0,sizeof(tagBeamInfo));
   
   for (int z = 0;z < 30;z++)
   {
    tagGateInfo stuGateInfo;
    memset(&stuGateInfo,0,sizeof(tagGateInfo));
    
    strMsg.Format("GateName%d",z);
    strncpy(stuGateInfo.GateName,strMsg,strMsg.GetLength());
    stuGateInfo.GateValue = 20+z;
    
    stuBeamInfo.vGateInfo.push_back(stuGateInfo);
   }
   
   strMsg.Format("BeamName%d",j);
   strncpy(stuBeamInfo.BeamName,strMsg,strMsg.GetLength());
   stuBeamInfo.BeamValue = 30+j;
   stuChannelInfo.vBeamInfo.push_back(stuBeamInfo);
  }
  
  strMsg.Format("ChannelName%d",i);
  strncpy(stuChannelInfo.ChannelName,strMsg,strMsg.GetLength());
  stuChannelInfo.ChannelValue = 40+i;
  stuDataInfo.vChannelInfo.push_back(stuChannelInfo);
 }
 return TRUE;
}

调用:

void CMyDlg::OnBnClickedButton3()
{
 VectorTest vectorTest;
 tagDataInfo stuDataInfo;
 memset(&stuDataInfo,0,sizeof(tagDataInfo));
 vectorTest.GetVector(stuDataInfo);

 CString strMsg = NULL;

 //Get the
 strMsg.Format("GateName of Channle4_Beam2_Gate1_____________%s",stuDataInfo.vChannelInfo[3].vBeamInfo[1].vGateInfo[1].GateName);
 MessageBox(strMsg);
 
 

 int nGateCount = stuDataInfo.vChannelInfo[3].vBeamInfo[1].vGateInfo.size();

 int GateValue = stuDataInfo.vChannelInfo[3].vBeamInfo[1].vGateInfo[nGateCount-1].GateValue;

 strMsg.Format("%s",stuDataInfo.vChannelInfo[1].ChannelName);

}