关于map的内存和时间复杂度(map尽量别碰暴力遍历)
内存占用:
map中每个元素包含一个键和一个值。键和值的类型可以是任意可比较的数据类型。
内存占用取决于键和值的大小以及map中元素的数量。
对于固定大小的键和值类型,map的内存占用可以近似为O(n),其中n是map中元素的数量。(最近队友用map内存超了,二我用vector没有超。。)
时间复杂度:
插入操作:O(log n),其中n是map中元素的数量。这是因为map使用红黑树作为底层数据结构,插入操作的时间复杂度是对数级别的。
查找操作:O(log n),同样是因为使用了红黑树,查找操作的时间复杂度也是对数级别的。
删除操作:O(log n),删除操作的时间复杂度与插入和查找操作相同。
访问操作:O(1),如果已经找到了元素的迭代器或引用,那么访问操作的时间复杂度是常数级别的。注意,这些时间复杂度是在平均情况下的表现。在最坏情况下,红黑树的操作可能会退化到O(n),但在实际应用中这种情况很少发生。