可能重复:
std :: vector元素是否保证是连续的?
std :: vector总是包含顺序存储器地址中的数据作为数组[数字]?
对于除bool之外的所有类型,标准要求元素在内存中是连续的:
23.2.4/1 ...向量的元素是连续存储的,这意味着如果v是一个向量,其中T是除了bool之外的某种类型,那么它服从身份&v [n] ==&v [0] + n对于所有0 <= n <v.size()
请记住,std::vector<bool>有特殊要求,并且与bool数组不同.
是.鉴于:
std::vector<int> arr;
Run Code Online (Sandbox Code Playgroud)
你可以肯定的
&arr[0]
Run Code Online (Sandbox Code Playgroud)
将为您提供指向可以(例如)传递旧API的连续数组的指针.