Windows下E1R固态雷达连接与RSViewer点云可视化指南
2026/10/23 5:20:34
在 C++ 中,.(点号)和->(箭头)的作用都是访问成员,但对应的“主人”不同:
.(点号)?当你手里拿的是一个普通的变量(对象)或引用时。
在你的代码for(const auto& it : mp2)中:
it是mp2中每一个元素的引用。
map里的元素类型是pair<const Key, Value>。
it就像是一个贴在对象上的“标签”,它代表的就是那个pair对象本身。
所以用it.first。
->(箭头)?当你手里拿的是一个指针或迭代器时。
在 C++ 中,箭头其实是一个“快捷键”,it->first等同于(*it).first(先解引用找到对象,再点一下)。
常见的两种情况:
使用迭代器遍历 map:
C++for(auto it = mp2.begin(); it != mp2.end(); ++it) { cout << it->first << endl; // it 是迭代器,行为类似指针 }使用动态分配的指针:
C++map<int, int>* ptr = &mp2; cout << ptr->size() << endl; // ptr 是指针点(.):代表“的”。it.first→it的first。
箭头(->):代表“指向那个人的...”。it->first→it指向那个人的first。
| 语法场景 | 遍历方式 | it 的身份 | 访问方式 |
| 基于范围的 for | for(auto& it : mp) | 引用(本体) | it.first |
| 迭代器 for | for(auto it = mp.begin()...) | 迭代器(类似指针) | it->first |
| 指针变量 | auto* ptr = &obj | 指针(地址) | ptr->member |