vector<point> map[75000];map[temp].size() 可以用Arraylist改写吗
时间: 2024-09-23 11:16:42 浏览: 60
List<Bean>转换为List<Map>
`vector<point>` 是 C++ 中用于存储点的动态向量容器,而 `map<int, vector<point>>` 则是一个关联数组,其中 key 是整数,value 是包含 `point` 的向量。如果想要使用类似 `ArrayList` 或者 Java 中的列表,我们可以将这个映射结构换成 `std::unordered_map<int, std::vector<point>>`,因为 `std::unordered_map` 提供了快速的查找操作,类似于哈希表。
用 `std::vector<std::vector<point>>` 来模拟类似 `ArrayList` 的效果,可以这样表示:
```cpp
std::vector<std::vector<point>> dataList(75000); // 创建一个有预设大小的二维向量
dataList[temp].push_back(point); // 添加元素到对应位置
// 如果想用类似ArrayList的方式访问
if (temp < dataList.size()) {
for (auto& points : dataList[temp]) {
// 操作 points
}
} else {
// temp 越界处理
}
```
然而,这并不是完全意义上的替代,因为 `std::unordered_map` 的查找速度更快,适合大量查找场景。至于 `map[temp].size()`,在 `dataList` 中则是直接 `dataList[temp].size()`。
阅读全文