几种数据结构中,只有底层是顺序存储的容器,才提供data()函数,比如vector和array,
value_type* data() noexcept;
const value_type* data() const noexcept;
返回指向内部使用的内存数组的直接指针,以存储其拥有的元素。因为向量中的元素保证以与向量所表示的顺序相同的顺序存储在连续的存储位置中,所以检索到的指针可以被偏移以访问数组中的任何元素。
返回值:指向向量内部使用的数组中第一个元素的指针。
如果向量对象是const限定的,则该函数返回指向const value_type的指针。否则,它返回一个指向value_type的指针。
// vector::data
#include <iostream>
#include <vector>
int main ()
{
std::vector<int> myvector (5);
int* p = myvector.data();
*p = 10;
++p;
*p = 20;
p[2] = 100;
std::cout << "myvector contains:";
for (unsigned i=0; i<myvector.size(); ++i)
std::cout << ' ' << myvector[i];
std::cout << '\n';
return 0;
}
Output:
myvector contains: 10 20 0 100 0 |