写程序遇到一个Bug如下:
char x = 'a';string str(x); //这里报错了当时就有点蒙了,查了下string的构造函数:
string();string (const string& str);string (const string& str, size_t pos, size_t len = npos);string (const char* s);string (const char* s, size_t n);string (size_t n, char c);template <class InputIterator> string (InputIterator first, InputIterator last);string (initializer_list<char> il);string (string&& str) noexcept;果然没有char类型直接初始化的(不知道为啥不提供。。。)
于是想要将一个char转换为string只能找其他间接的方法了,这里提供几种:
//1、构造函数里有个string(size_t,char)char x = 'a';string s(1,x);//2、string初始化没char,但是push_back可以string s;s.push_back(x);//3、string可以由char*初始化char xx[2] = {x,0};string s(xx)但是我还是要说这么写毫无美感,就让人很难受。。。。