从std :: vector <int>转换为char [] C ++

All*_*ang 0 c++ vector

如果我有一个整数向量(std :: vector),有一种简单的方法可以将向量中的所有内容转换为char数组(char []),因此(1,2,3)->('1','2' ,'3')这是我尝试过的方法,但是不起作用:

std::vector<int> v;

for(int i = 1; i  < 10; i++){
    v.push_back(i);
}

char *a = &v[0];
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 5

std::transform 是工作的正确工具:

std::vector<int> iv {1, 2, 3, 4, 5, 6};
char ca[10] {};

using std::begin;
using std::end;
std::transform(begin(iv), end(iv), begin(ca), [](int i) { return '0' + i; });
Run Code Online (Sandbox Code Playgroud)

如果您不需要ca成为C样式的数组,建议您使用std::arraystd::vector代替。后者需要std::back_inserter(ca)代替begin(ca)