我有char *c
,我需要在vector <string>
有人可以帮忙吗?
答案 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 );