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)); }
|