std::vector data() 方法
- 自 C++20 起
- 自 C++11 起
- 直到 C++11
// Non-const version
constexpr T* data() noexcept;
// Const version
constexpr T const* data() const noexcept;
// Non-const version
T* data() noexcept;
// Const version
T const* data() const noexcept;
// Non-const version
T* data();
// Const version
T const* data() const;
返回指向用作元素存储的底层数组的指针。
该指针使得范围 [ data()
; data() + size()
) 始终是一个有效范围,即使容器为空也是如此。
未定义行为
如果容器为空,则解引用由 data()
返回的指针是未定义行为
参数
(无)
返回值
指向底层元素存储的指针。
对于非空容器 c
,返回的指针与第一个元素的地址相等 - c.data() == &c[0]
;
复杂度
常数 - O(1)**。
备注
如果容器为空,data()
可能会或可能不会返回空指针。
示例
Main.cpp
#include <array>
#include <iostream>
int main()
{
std::vector<char> letters {'a', 'b', 'c', 'd', 'e', 'f'};
if (!letters.empty()) {
std::cout << "The last character is '" << letters.back() << "'.\n";
}
}
输出
The last character is 'f'.