我正在编写一个应用程序,它将获取所有网络适配器卡信息并在屏幕上显示。为了我的目的,我需要存储它们以备将来使用。
目前我正在使用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++;
}
现在,我正在考虑使用双维矢量或类似的。任何的意见都将会有帮助。
答案 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++;
}