如何在向量“[i]”中插入*char?[C++]
对不起,我英语不好 我有char*c,我需要在向量的i位置插入 有人能帮忙吗?char*可以隐式转换为std::string,然后将其插入正确的位置:如何在向量“[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
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++的插入变量。我理解你的咒骂,它们奏效了!