作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以,在这种情况下,我需要查看一个对象是否在我的 STL 映射中。如果不是,我将添加它。
char symbolName[] = { 'H', 'e', 'l', 'l', 'o', '\0' };
map<string,TheObject> theMap;
if (theMap.find(symbolName)==theMap.end()) {
TheObject theObject(symbolName);
theMap.insert(pair<string, TheObject>(symbolName,
theObject));
}
当对象不在 map 中时,我在 theMap.find 上获取核心转储。据推测,如果该项目不在 map 中,它应该返回一个迭代器,相当于 map::end
这是怎么回事?
海湾合作委员会:3.4.6
最佳答案
由于多种原因,它可能会崩溃。在不知道至少 TheObject
的构造函数的定义的情况下,我认为我们在很大程度上只能靠猜测来解决这个问题。到目前为止,您的代码看起来不错,但可以简化:
char symbolName[] = "Hello";
map<string,TheObject> theMap;
theMap.insert(make_pair(symbolName, TheObject(symbolName)));
如果符号已经映射,它不会做任何事情,丢弃新的 TheObject 对象。
关于c++ - 为什么 STL 在查找时会映射核心转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/481119/
我创建了一个分支来开发新功能。由于这个新功能完全是作为一个新项目开发的,唯一可能的冲突来源是解决方案文件。 随着功能的开发,主分支更新了几次。当我完成开发和测试时,我做了: git checkout
我是一名优秀的程序员,十分优秀!