str.find('X') - 的反義詞找到std :: string中與特定char不同的第一個字符的最有效方法是什麼?如果我有一個主要由X'es組成的字符串,但在某些時候還有另一個字符 - 我如何快速找到它?不同於「X」的第一個字符的搜索字符串
0
A
回答
5
std::string str = "XXXXXXXXXXXXXXX.XXXXXXXXXXX";
size_t index = str.find_first_not_of('X');
但是,一個普通的舊for循環將一樣好。
或者,如果你想要一個迭代器,而不是一個指標,或許是這樣的:
std::string::iterator = std::find_if(str.begin(), str.end(),
[](char c){ return c != 'X'; });
0
我認爲最有效的方法是迭代字符串,並將每個字符與'X'
進行比較,返回第一個不同的字符。
沒有任何關於字符串的預先知識,我沒有看到比O(n)
更好的方法,並且連續調用find('X')
可能比只遍歷字符更糟糕。
相關問題
- 1. 搜索字符串的開始和在同一個字符串
- 2. 用於搜索字符串中多個字符串或字符的第一個匹配項的函數
- 3. 某個字符的搜索字符串
- 4. 提取字符串中給定搜索字符串周圍的X個字符
- 5. 的strstr()搜索兩個不同的字符串在同一行
- 6. 搜索字符串中的不同子字符串
- 7. 從Oracle的字符串中檢索第一個X字選擇
- 8. T-SQL - 如何搜索字符串中的第n個字符
- 9. 搜索一個字符串的子字符重音不敏感
- 10. 搜索字符串中的字符串
- 11. 搜索字符串內的字符串
- 12. 搜索一個字符串是否另一個字符串
- 13. 根據字符串列選擇不同的第一個字符
- 14. 從Python中的另一個字符串搜索字符串
- 15. 搜索一個子字符串的字符串
- 16. 剝字符串的第一個字符
- 17. 搜索一個字符串的斑點
- 18. 如何在一個字符串中搜索兩個字符串?
- 19. 搜索變長,分隔字符串基於另一個字符串的位置
- 20. php在字符串的第n個字符上添加不同的字符串
- 21. 字符串的第一個字符和最後一個字符
- 22. 在不同文件中的兩個字符串之間搜索字符串
- 23. sed命令來搜索字符串和搜索的字符串
- 24. 在一個字符串中搜索其他字符串的字符出現
- 25. 搜索字符串中的字符
- 26. 搜索字符串的Unicode字符
- 27. 字符串中的字符搜索
- 28. 搜索字符串中的字符集
- 29. 搜索字符串值中的字符
- 30. 搜索特定字符的字符串
@dribeas有接受單個字符,也超載。 – jrok 2012-08-07 21:31:50