我知道有一个"isspace"函数可以检查空格,但这需要我遍历字符串中的每个字符,这可能会影响性能,因为这会被称为很多.有没有快速的方法来检查std :: string是否只包含空格?
例如:
function(" ") // returns true
function(" 4 ") // returns false
Run Code Online (Sandbox Code Playgroud)
我想到的一个解决方案是使用正则表达式,然后我会知道它只包含空格,如果它是假的......但我不确定这是否比isspace函数更有效.
regex: [\w\W] //checks for any word character(a,b,c..) and non-word character([,],..)
Run Code Online (Sandbox Code Playgroud)
提前致谢!
使用常规字符串,您可以做的最好的形式是:
return string::find_first_not_of("\t\n ") == string::npos;
Run Code Online (Sandbox Code Playgroud)
在最坏的情况下,这将是O(n),但是在不知道关于字符串的情况下,这将是您能做的最好的.
必要时,任何方法都需要查看字符串的每个字符.调用isspace()每个字符的循环非常有效.如果isspace()由编译器内联,那么这将是最接近最佳的.
当然,只要看到非空格字符,循环就应该中止.
| 归档时间: |
|
| 查看次数: |
28217 次 |
| 最近记录: |