将char添加到特定位置的std :: vector <string> </string>

时间:2014-12-09 09:08:52

标签: c++ string vector char

我到处寻找,虽然我已经找到了如何将std::string插入vector<char>,但我找不到将char插入std::vector<std::string>的方法}

在文本编辑器项目中,我被限制使用字符串向量,而检查何时将字符输入到文本编辑器的东西必须接受char并返回char。

如果我知道我要在这个向量中插入一个角色,我可以打电话来实现这个目标吗?

作为旁注,我尝试执行lines.push_back(&c),其中我将行定义为std::vector<std::string>,但它说:

candidate function not viable: no known
      conversion from 'char' to 'const value_type' (aka 'const std::__1::basic_string<char,
      std::__1::char_traits<char>, std::__1::allocator<char> >') for 1st argument
    _LIBCPP_INLINE_VISIBILITY void push_back(const_reference __x);

4 个答案:

答案 0 :(得分:2)

如果你想用一个只有一个字符的新元素追加向量,你可以写

std::vector<std::string> v;

//...

v.push_back( { 1, 'A' } );

如果你想在你已经存在的向量元素上附加一个字符,你可以写

std::vector<std::string> v;

//...

v[i] += 'A';

std::vector<std::string> v;

//...

v[i].push_back( 'A' );

如果要在向量的某个现有元素的字符串中插入一个字符,可以编写

std::vector<std::string> v;

//...

v[i].insert( position, 1, 'A' );

答案 1 :(得分:1)

如果要将字符插入特定向量中的特定位置:

lines[i].insert(j, 1, c);

答案 2 :(得分:0)

希望下面的代码片段有帮助,

  std::vector<std::string> line;
  string s(1, c); 
  lines.push_back(s);

对于std :: string的向量。然后你将c char转换为std :: string并插入vector。

答案 3 :(得分:0)

您无法将字符串插入字符串向量中。您必须将该char转换为字符串。你可以用这种迂回的方式做到这一点:

string s = "";
char c = 'a';
s += c;

或更直接:

string s(1,c);

然后将字符串推入向量:

lines.push_back(s);

如果要将其插入特定位置,则必须计算位置,然后:

lines.insert(position, s);