vector和string都是使用连续内存来存储数据,可以类似于普通数组进行处理。
std::vector<int> datas;
std::string strData;
获取vector的首个元素的指针:
&datas[0]
&(*datas.begin())
但必须确保容器非空,使用前最好调用empty()。
C++11中,可以使用成员函数data()。
其函数声明为:
value_type* data() noexcept;
const value_type* data() const noexcept;
获取std::string的字符串地址:
通过成员函数c_str(),返回一个const char*, 指向的字符串可能是strData的一个拷贝。
strData.c_str();
其函数声明为:
const char* c_str() const noexcept;