我正在尝试插入初始化为
的向量中std::vector<std::string> vector_strings{""};
并且我正在尝试通过插入测试
vector_strings.insert(vector_strings.begin(),c);
在这种情况下,c是const char。
它一直给我这个错误:
no matching member function for call to 'insert'
note: candidate function not viable: no known conversion from 'const char' to 'const
std::__1::__vector_base<std::__1::basic_string<char>, std::__1::allocator<std::__1::basic_string<char> > >::value_type'
(aka 'const std::__1::basic_string<char>') for 2nd argument
iterator insert(const_iterator __position, const_reference __x);
任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
从
vector_strings.insert(vector_strings.begin(),c);
到
vector_strings.insert(vector_strings.begin(),string(1,c));
尝试一下!
答案 1 :(得分:0)
您的std::vector
的内部值类型为std::string
。
您要插入的内容是const char
,而不是std::string
。
const char
不会自动或隐式转换为std::string
。因此,编译器拒绝此代码。
将您的const char
转换为std::string
,它将起作用。