1 字符串转换
C 字符串转 string
str ="helloworld";
string s(str);
string 转 C 风格字符串
string s("helloworld");
const char * str = s.c_str();
2 数组转换
数组也是 C++中很重要的复杂类型之一。vector 是对象类型。可以不用相互转换。C++支持数组的迭代器运算。
建议尽量使用标准库类型,而非数组。
数组转 vector
int arr[] = { 1,2,3,5,5,8,2,6};
vector<int> vec(arr, arr+sizeof(arr)/sizeof(int));
vector<int> vec2(begin(arr),end(arr));//使用数组初始化vector
vector 转数组
由于 vector 内部的数据是存放在连续的存储空间,vector 转数组事实上只需要获取 vector 中第一个数据的地址和数据的长度即可。如果仅仅是传参,无需任何操作,直接传地址即可,如果要进行数据复制,可以借用内存拷贝函数“memcpy”。例如:
float *buffer = new float[sizeof(arrHeight)];
if (!vecHeight.empty())
{
memcpy(buffer, &vecHeight[0], vecHeight.size()*sizeof(float));
}