求vc帮忙定义结构体
number=5
str0=aa
str1=bb
str2=cc
str3=dd
str4=ee
number的值变化,str的个数也会变化,请问要定义什么样的结构体存储这些变量?
[解决办法]
很基本的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);
}
[解决办法]
动态
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=5
test.pStr[0] = aa
test.pStr[1] = bb
test.pStr[2] = cc
test.pStr[3] = dd
test.pStr[4] = ee