MFC数据存储指南

时间:2014-07-21 09:08:02

标签: c++ mfc

我正在编写一个应用程序,它将获取所有网络适配器卡信息并在屏幕上显示。为了我的目的,我需要存储它们以备将来使用。

目前我正在使用CStringArray数组来存储数据,但数组的大小是固定的。

//member of class
CStringArray m_arrAdapterData[10];

//enumeration of network card
int iAdapterCount = 0;
while(some loop condition)
{
    CString cstr = _T("Some data");
    m_arrAdapterData[iAdapterCount].Add(cstr);
    cstr = _T("Some data");
    m_arrAdapterData[iAdapterCount].Add(cstr);
    iAdapterCount++;
}

现在,我正在考虑使用双维矢量或类似的。任何的意见都将会有帮助。

1 个答案:

答案 0 :(得分:0)

为什么不使用vector

它允许快速随机访问任何元素,并可以处理动态分配。

您可以在下面稍微修改代码以使用向量。

#include <vector>
.
.
.
//member of class

  vector<CString> m_arrAdapterData;
vector<vector<CString>> infoVectors;

//populating
for (int i = 0; i < 5 ; i++)
{
   for (int j = 0; j< 5 ; j++)
   {
      CString cstr = _T("Some data");
      m_arrAdapterData.push_back(cstr);
   }
   infoVectors.push_back(m_arrAdapterData);
}

//retrieving
vector<vector<CString>>::iterator outerItr = infoVectors.begin();
while(outerItr != infoVectors.end())
{
   vector<CString>::iterator innerItr = outerItr->begin();
   while(innerItr != outerItr->end())
   {
     cout<<*innerItr;
     innerItr++;
   }
   outerItr++;
}