我有一个需要大量向量的程序。它们都以相同的方式初始化。例如,以下是所有相同类型的 2D 向量:
vector<vector<uint> > OverallArrivalAlgorithm_Blocks;
vector<vector<uint> > BusyArrivalAlgorithm_Blocks;
vector<vector<uint> > firstBusyHourArrivalIndex;
vector<vector<uint> > lastBusyHourArrivalIndex;
vector<vector<uint> > numOverallArrivals;
vector<vector<uint> > numBusyArrivals;
jPoolLoop
{
vector<uint> PoolRowInt;
OverallArrivalAlgorithm_Blocks.push_back(PoolRowInt);
BusyArrivalAlgorithm_Blocks.push_back(PoolRowInt);
firstBusyHourArrivalIndex.push_back(PoolRowInt);
lastBusyHourArrivalIndex.push_back(PoolRowInt);
numOverallArrivals.push_back(PoolRowInt);
numBusyArrivals.push_back(PoolRowInt);
kDatasetLoop
{
OverallArrivalAlgorithm_Blocks[j].push_back(0);
BusyArrivalAlgorithm_Blocks[j].push_back(0);
firstBusyHourArrivalIndex[j].push_back(0);
lastBusyHourArrivalIndex[j].push_back(0);
numOverallArrivals[j].push_back(0);
numBusyArrivals[j].push_back(0);
}
}
如果它们是不同类型的,我会考虑模板,但这不是问题。在另一个文件中,我需要大约 40 个不同的向量。更优雅地做到这一点的最“c ++方式”是什么?在 python 中,我可能会使用字典,以便可以迭代所有列表。将所有这些放在一个向量中似乎很笨拙,因为那时我需要关心它们的位置等。我问是因为我觉得我的代码比它需要的长得多。