向量错误:没有匹配的成员函数调用要插入

时间:2019-12-07 11:04:09

标签: c++

我正在尝试插入初始化为

的向量中
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);

任何帮助将不胜感激。谢谢!

2 个答案:

答案 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,它将起作用。