求vc帮忙定义结构体 number=5str0=aastr1=bbstr2=ccstr3=ddstr4=eenumber的值变化,str的个数也会变化,请问要定义什么样的结构体存储这些变量? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 typedef struct有没有办法实现呢?vector<string> 没用过,不太会 很基本的stl操作啊typedef vector<string> VecString;VecString str;str.push_back("aa");str.push_back("bb");str.push_back("cc");str.push_back("dd");str.push_back("ee");for (size_t i = 0; i < str.size(); ++i){ std::cout << str[i];}或:for (VecString::iterator it = str.begin(); it != str.end(); ++it){ std::cout << (*it);} struct XX{int number;char* str0;char* str1;cahr* str2;char* str3;char* str4;}; 如果是固定个数的直接定义结构体就行了,但这个里面str个数是根据number定的,楼上那种写死的是不行的,如果里面在加变量name,又加了name0....name5这些变量,并且number的值是可以变的。 动态typedef struct _tagMyStruct_t{ int iNumber; LPTSTR *pStr; _tagMyStruct_t(int num, LPCTSTR str[]) { iNumber = num; pStr = new LPTSTR[num]; for (int i=0; i<num; i++) { pStr[i] = new TCHAR[_tcslen(str[i])+1]; _tcscpy_s(pStr[i], str[i]); } } ~_tagMyStruct_t() { for(int i=0; i<iNumber; i++) { delete []pStr[i]; } if(pStr) delete []pStr; pStr = NULL; iNumber = 0; }}MyStruct_t;//测试{ LPCTSTR ss[]= { _T("aa"), _T("bb"), _T("cc"), _T("dd"), _T("ee") }; MyStruct_t test(_countof(ss), ss); TRACE(_T("test.iNumber=%d\n"), test.iNumber); for(int i=0; i<test.iNumber; i++) { TRACE( _T("test.pStr[%d] = %s\n"), i, test.pStr[i]); } TRACE(""); // TODO: add construction code here, // Place all significant initialization in InitInstance}输出test.iNumber=5test.pStr[0] = aatest.pStr[1] = bbtest.pStr[2] = cctest.pStr[3] = ddtest.pStr[4] = ee Quote: 引用 7 楼 zgl7903 的回复:动态感谢,如果我有3个这样的结构直接在后面添加MyStruct_t[3](赋值的时候直接循环,方便一些),行不行呢? 在MFC中的.h文件中,这种带函数的要怎么定义呢 用MAP类型储存比较好一些,有相同问题的可以试下 这几天做了个电脑版的微信客户端,有源码 vc创建数据库文件 如何在基于对话框模式下使用数据库(CDaoDatabase) 哪有得到硬盘序列号/网卡MAC/CPU序列号的VC++源码? 编译错误:语法错误 : “数字上的错误后缀” VC6.0 编辑环境的一个奇怪问题(当我内嵌有asm代码的时候,突然停止响应) 一个有关switch的语法问题 关于VC++按钮设计的问题? 给ShapeRock的分。别人别进来。与你们无关。 看过<<com技术内幕>>(inside com)的朋友请进。 100分再发一帖问,如何输出内容到cmd.exe PoDoFo-0.8.4SDK 打包下载
typedef struct有没有办法实现呢?
vector<string> 没用过,不太会
typedef vector<string> VecString;VecString str;
str.push_back("aa");
str.push_back("bb");
str.push_back("cc");
str.push_back("dd");
str.push_back("ee");
for (size_t i = 0; i < str.size(); ++i)
{
std::cout << str[i];
}
或:
for (VecString::iterator it = str.begin(); it != str.end(); ++it)
{
std::cout << (*it);
}
{
int number;
char* str0;
char* str1;
cahr* str2;
char* str3;
char* str4;
};
{
int iNumber;
LPTSTR *pStr; _tagMyStruct_t(int num, LPCTSTR str[])
{
iNumber = num;
pStr = new LPTSTR[num];
for (int i=0; i<num; i++)
{
pStr[i] = new TCHAR[_tcslen(str[i])+1];
_tcscpy_s(pStr[i], str[i]);
}
} ~_tagMyStruct_t()
{
for(int i=0; i<iNumber; i++)
{
delete []pStr[i];
}
if(pStr)
delete []pStr;
pStr = NULL;
iNumber = 0;
}
}MyStruct_t;
//测试
{
LPCTSTR ss[]=
{
_T("aa"), _T("bb"), _T("cc"), _T("dd"), _T("ee")
}; MyStruct_t test(_countof(ss), ss); TRACE(_T("test.iNumber=%d\n"), test.iNumber);
for(int i=0; i<test.iNumber; i++)
{
TRACE( _T("test.pStr[%d] = %s\n"), i, test.pStr[i]);
} TRACE(""); // TODO: add construction code here,
// Place all significant initialization in InitInstance
}
输出
test.iNumber=5
test.pStr[0] = aa
test.pStr[1] = bb
test.pStr[2] = cc
test.pStr[3] = dd
test.pStr[4] = ee