number=5
str0=aa
str1=bb
str2=cc
str3=dd
str4=eenumber的值变化,str的个数也会变化,请问要定义什么样的结构体存储这些变量?

解决方案 »

  1.   


    typedef struct有没有办法实现呢?
    vector<string> 没用过,不太会
      

  2.   

    很基本的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);
    }
      

  3.   

    struct XX
    {
    int number;
    char* str0;
    char* str1;
    cahr* str2;
    char* str3;
    char* str4;
    };
      

  4.   

    如果是固定个数的直接定义结构体就行了,但这个里面str个数是根据number定的,楼上那种写死的是不行的,如果里面在加变量name,又加了name0....name5这些变量,并且number的值是可以变的。
      

  5.   

    动态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
      

  6.   

    Quote: 引用 7 楼 zgl7903 的回复:

    动态感谢,如果我有3个这样的结构直接在后面添加MyStruct_t[3](赋值的时候直接循环,方便一些),行不行呢?
      

  7.   

    在MFC中的.h文件中,这种带函数的要怎么定义呢
      

  8.   

    用MAP类型储存比较好一些,有相同问题的可以试下