Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在向量“[i]”中插入*char?[C++]_C++_String_Vector_Char - Fatal编程技术网

如何在向量“[i]”中插入*char?[C++]

如何在向量“[i]”中插入*char?[C++],c++,string,vector,char,C++,String,Vector,Char,对不起,我英语不好 我有char*c,我需要在向量的i位置插入 有人能帮忙吗?char*可以隐式转换为std::string,然后将其插入正确的位置: vec.insert( vec.begin() + i, std::string( c ) ); 当然,您需要确保vec大小大于或等于i。有关详细信息,请参见要在向量中插入内容,应使用其插入方法之一。比如说 #include <iostream> #include <vector> #include <string

对不起,我英语不好

我有char*c,我需要在向量的i位置插入

有人能帮忙吗?

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

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

当然,您需要确保vec大小大于或等于i。有关详细信息,请参见

要在向量中插入内容,应使用其插入方法之一。比如说

#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;
}
v.insert( std::next( v.begin(), v.size() < i ? v.size() : i ), s );
您可以添加一个检查,检查位置i的值是否小于或等于向量中的元素数

比如说

#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;
}
v.insert( std::next( v.begin(), v.size() < i ? v.size() : i ), s );

在插入之前,向量的元素数是否大于、等于或小于i,答案将大不相同。哪一个?你试过看吗?@好奇等于或小于等于是一样的case@Slava一个小于等于等于与两个以上小于等于不同generalize@Curious我的意思是超过或等于是一样的。小于没有任何意义。谢谢斯拉瓦和弗拉德!!:对不起,我只在C编程,我需要C++的插入变量。我理解你的咒骂,它们奏效了!