c++ - 内联 char 到 std::string 的转换

标签 c++ string c++11 type-conversion

是否有内置方法可以根据给定的 char 构造 std::string

我问这个的原因是因为我想直接在 if 语句中进行函数调用:

// Given function prototype
bool func(std::string s);

for(auto rit = s.rbegin(); rit != s.rend(); ++rit)
{
    if(func(*rit))
    {
        //
    }
}

我试过以下方法:

std::string(*rit)
static_cast<std::string>(*rit)

最佳答案

自 C++11 以来最简洁的方法 是通过初始化列表构造:

func({*rit})

或者如果您需要显式指定类型(对于函数模板):

func(std::string{*rit})

对于 C++11 之前的版本,它是 std::string's constructor 的第二次重载:

func(std::string(1, *rit))

关于c++ - 内联 char 到 std::string 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31017865/

相关文章:

macos - 使用 C++11 的 CUDA 6.0 的 CMake 脚本

c++ - 用原语 union 公共(public)初始序列

c++ - 检查 HKEY HANDLE 是否有效?

c# - 使用 C++ dll 64 位编译我的 32 位项目

C++ 如何传递多个参数?

iphone - NSString 与 NSMutableString 与 stringByAppendingString

string - 给定两个字符串,如何找到一个字符串在另一个字符串中出现的次数?

c++ - C++11 中的混合(List+Dict)容器

c++ - 将终端上的所有消息和警告打印到文件中?

c# - List<> 内的 "Tag"字符串