动态处理矢量元素,性能良好

Handling vector elements dynamically, with good performance

我需要处理向量中的各种(在运行时变化的)指针数量。也就是说,有时我需要删除某些元素,即,据我所知,向量中会有一些“空槽”。 1./ 再次“压缩”矢量(“删除”后)的方法(性能良好)是什么 2./ 我想使用二进制搜索(为了速度)。我没有看到一个模板,即 returns 元素的索引,而不是在找到元素时返回布尔值,只有手动编码的方法。 3./ 如果我使用(用于排序)uint 转换并压缩元素,是否存在任何风险? (我正在使用 SystemC,据我所知,它只使用一个线程。)

  1. 删除元素后可以使用resize()缩小尺寸。但是使用 erase() 方法将为您调整大小。
  2. 要搜索特定元素,您需要遍历 vector 中的元素。或者,您可以使用 std::map,它提供 find() 方法,您可以快速搜索元素并获取它的索引。
  3. 没错,Accellera 的 SystemC 实现使用单线程。使用容器方法比处理 saw 元素和指针更安全。