如何在vector <string>“[i]”中插入* char? [C ++]

时间:2017-06-29 15:03:54

标签: c++ string vector char

抱歉,我的英文不好

我有char *c,我需要在vector <string>

中的“i”位置插入

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

char *可以(隐式)转换为std::string,然后将其插入正确的位置:

vec.insert( vec.begin() + i, std::string( c ) );

当然,您需要确保vec尺寸大于或等于i。详细信息可在documentation

中找到

答案 1 :(得分:1)

要在向量中插入内容,您应该使用其中一种方法insert。例如

#include <iostream>
#include <vector>
#include <string>
#include <iterator>

int main() 
{
    std::vector<std::string> v = { "Christian", "Assis" };
    const char *s = "Hello";
    size_t i = 0;

    v.insert( std::next( v.begin(), i ), s );

    for ( const auto &s : v ) std::cout << s << ' ';
    std::cout << std::endl;

    return 0;
}

程序输出

Hello Christian Assis 

您可以添加检查位置i的值是否小于或等于向量中元素的数量。

例如

v.insert( std::next( v.begin(), v.size() < i ? v.size() : i ), s );