一般使用vector<char>來存儲二進制數據(好比網絡數據包).所以它會與char* 進行相互轉換,具體方法以下例所示:ios
#include <iostream> #include <vector> #include <iterator> #include <algorithm> #include <cstring> using namespace std; void printVector(const vector<char>& v){ cout << "vector content : "; for_each(v.cbegin(), v.cend(), [](const char& val)->void{cout << val; }); cout << endl; } int main() { vector<char> vdata; const char* in = "test1"; vdata.insert(vdata.end(),in,in+strlen(in)); vdata.insert(vdata.end(),'a'); printVector(vdata); cout << endl; char* out = &vdata[0]; cout <<"vector<char> --> char* : "<< out << endl; out[0] = 'j';//can changes the vector's content cout <<"vector<char> --> char* after change content: "<< out << endl; printVector(vdata); cout << endl; cout <<"get copied char* from vector<char>..."<<endl; char *buffer = new char[vdata.size()]; std::copy(vdata.begin(), vdata.end(), buffer); cout <<"vector<char> --> char* : "<< buffer << endl; buffer[0] = 'z';//can changes the vector's content cout << "vector<char> --> char* after change content: "<< buffer << endl; printVector(vdata); return 0; }