我正在研究一个具有严格时序要求的系统。我有一个以下组件的接口:
void Component::Foo(std::map<unsigned char, unsigned long>& data);
通过从具有更快循环时间的线程中使用数组来生成data
映射。然后,地图仅填充当前“活动”的数据。
unsigned long dataArray[MAX_DATA_SIZE];
ConsumeDataArray(dataArray);
std::map<unsigned char, unsigned long> dataMap;
for(int Index = 0; Index < MAX_DATA_SIZE; Index++)
{
if(DataIsActive(Index))
dataMap[Index] = dataArray[Index];
}
component->Foo(dataMap);
将各种条目添加到地图中的过程将导致动态内存分配(new
)。我正在寻找避免这种情况的方法。
我无法更改Component::Foo
的界面,所以我认为我不能使用自定义分配器来避免动态分配。我不确定是否还有其他方法可以实现这一目标。