如何在矢量"[i]"中插入*字符<string>?[C++]

How insert *char in vector <string> "[i]"? [C++]

本文关键字:lt C++ gt string 字符 插入      更新时间:2023-10-16

对不起,我的英语不好

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

中插入" I"位置

有人可以帮忙吗?

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

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

当然,您需要确保vec大小比i更大或相等。详细信息可以在文档中找到

要在向量中插入某些内容,您应该使用其方法之一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 );