在 C++ 中,可以使用
std::vector::begin()
和
std::vector::end()
函数来获取 vector 的迭代器。这些迭代器指向 vector 的第一个元素和最后一个元素的下一个位置,分别表示 vector 的起始和结束。
因此,如果想要截取 vector 的一段部分,可以使用
std::vector::begin()
和
std::vector::end()
函数来获取 vector 的迭代器,然后使用迭代器范围构造函数
std::vector::vector(iterator_type first, iterator_type last)
来构造新的 vector。
例如,如果要截取 vector
v
中第
3
个元素到第
7
个元素,可以使用以下代码:
std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<int> v2(v.begin() + 3, v.begin() + 7);
这样,新的 vector v2
中就包含了 v
中第 3
个元素到第 7
个元素的元素。
注意,如果要截取的范围超出了 vector 的范围,会引发运行时错误。因此,在使用迭代器范围构造函数时,应该确保迭代器范围有效。
另外,C++11 标准引入了 std::vector::cbegin()
和 std::vector::cend()
函数,它们返回 const_iterator 类型的迭代器,指向 vector 的第一个元素和最后一个元素的下一个位置。如果想要使用这些函数来