相关疑难解决方法(0)

如何检查C++ std :: string是否以某个字符串开头,并将子字符串转换为int?

如何在C++中实现以下(Python伪代码)?

if argv[1].startswith('--foo='):
    foo_value = int(argv[1][len('--foo='):])
Run Code Online (Sandbox Code Playgroud)

(例如,如果argv[1]--foo=98,则foo_value98.)

更新:我对调查Boost犹豫不决,因为我只是想对一个简单的小命令行工具进行一个非常小的改动(我宁愿不必学习如何链接并使用Boost作为一个小的更改).

c++ string parsing substring startswith

213
推荐指数
17
解决办法
26万
查看次数

std :: string size()是否为O(1)操作?

std :: string size()是否为O(1)操作?

我正在使用的STL的实现是VC++内置的

c++ stl stdstring visual-c++

26
推荐指数
5
解决办法
1万
查看次数

std :: map部分匹配键

我有一个std :: map,我想使用子字符串搜索一个键.例如

#include <iostream>
#include <map>
#include <string>
using namespace std;

typedef std::map<std::string, std::string> TStrStrMap;
typedef std::pair<std::string, std::string> TStrStrPair;

int main(int argc, char *argv[])
{
    TStrStrMap tMap;

    tMap.insert(TStrStrPair("John", "AA"));
    tMap.insert(TStrStrPair("Mary", "BBB"));
    tMap.insert(TStrStrPair("Mother", "A"));
    tMap.insert(TStrStrPair("Marlon", "C"));

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想搜索包含子串"Marl"而不是"Marlon"的位置.可能吗?怎么样?

编辑:没有加速库!

c++ search containers dictionary stdmap

23
推荐指数
3
解决办法
1万
查看次数


如何在std :: map中对部分键进行二进制搜索?

我有一张数据图;关键是std::string。我想对它执行二进制搜索,但是我不能只使用std::map::find(),因为我将只提供一部分密钥。

假设我有一张带有以下按键的地图:

["abc"] -> ...
["efg"] -> ...
["ijk"] -> ...
["iik"] -> ...
Run Code Online (Sandbox Code Playgroud)

我想使用进行搜索,比如说仅提供"i",搜索应该返回:

[“ ijk”]-> ...,[“ iik”]-> ...

这可能吗?我尝试使用迭代器来执行此操作,但由于无法将它们视为索引而失败了。

注意:由于其他原因,我将数据保留在地图中,所以我不想将其更改为其他数据结构。

c++ containers dictionary binary-search c++11

1
推荐指数
1
解决办法
1216
查看次数