避免使用std :: map进行动态分配

时间:2016-11-21 20:34:37

标签: c++ memory-management stdmap

我正在研究一个具有严格时序要求的系统。我有一个以下组件的接口:

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的界面,所以我认为我不能使用自定义分配器来避免动态分配。我不确定是否还有其他方法可以实现这一目标。

0 个答案:

没有答案