在游戏中,我想搜索项目地图并返回位于棋盘特定方块上的项目.但如果广场是空的怎么办?(这些项目没有存储在董事会结构中.对于这个问题,我没关系.)我有下面的代码,但是我应该怎样做才能返回"空"参考?
map<pair<int, int>, Item*> _items;
Item& itemAt(int row, int col) const {
try {
return *_items.at(make_pair(row, col));
} catch(out_of_range& e) {
return // what goes here?
}
}
Run Code Online (Sandbox Code Playgroud)
或者这是错误的方法,我应该使用find()?
我将我的Android应用程序移植到bb10并且它运行良好.但是我应该关闭一些功能,因为它们需要Google Play商店.当我遇到与亚马逊Kindle Fire类似的问题时,我通过检查android.os.Build.MODEL并将Kindle设备列入黑名单来处理它.是采用BB10的正确方法,如果是,那么当前和未来设备的模型字符串是什么?或者他们是一个更好的处理方式?
鉴于...
string a; // = something.
string b; // = something else. The two strings are of equal length.
string::size_type score = 0;
Run Code Online (Sandbox Code Playgroud)
......我想做的是......
compare(a.cbegin(), a.cend(), b.cbegin(), b.cend(), [&score](const char c1, const char c2) -> void {
if (c1 == c2) { // actually a bit more complicated in real life
score++;
}
});
Run Code Online (Sandbox Code Playgroud)
...但据我所知,似乎没有std :: compare.最近的似乎是std :: lexicographical_compare,但这并不完全匹配.同上std :: equal.标准库中真的没有什么合适的吗?我想我可以自己编写(或使用一个普通的旧C风格循环,这是我做的但是多么无聊:-)但我认为我正在做的是相当普遍的,所以这将是一个奇怪的遗漏IMO.所以我的问题是我错过了什么?