1 字符串转换

C 字符串转 string

1
2
str ="helloworld";
string s(str);

string 转 C 风格字符串

1
2
string s("helloworld");
const char * str = s.c_str();

2 数组转换

数组也是 C++中很重要的复杂类型之一。vector 是对象类型。可以不用相互转换。C++支持数组的迭代器运算。
建议尽量使用标准库类型,而非数组。

数组转 vector

1
2
3
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”。例如:

1
2
3
4
5
float *buffer = new float[sizeof(arrHeight)];
if (!vecHeight.empty())
{
memcpy(buffer, &vecHeight[0], vecHeight.size()*sizeof(float));
}