vector 是 C++ 标准库中提供的一个动态数组容器,支持高效的随机访问和动态扩容等操作。如果需要截取 vector 中的一部分元素,可以使用 STL 中的 erase 和 resize 函数。
具体来说,如果要截取 vector 中的一段连续元素,可以使用 erase 函数。例如,如果要截取 vector v 中下标从 start 到 end(不包含 end)的元素,可以使用以下代码:
v.erase(v.begin() + start, v.begin() + end);
这会删除 v 中下标从 start 到 end(不包含 end)的元素。需要注意的是,这会修改原 vector 的内容,因此如果不想修改原 vector,可以先复制一份再进行操作。
如果要截取 vector 中的一段连续元素,并且保留截取后的元素,可以使用 resize 函数。例如,如果要截取 vector v 中下标从 start 到 end(不包含 end)的元素,可以使用以下代码:
v.resize(end - start);
std::copy(v.begin() + start, v.begin() + end, v.begin());
这会将 v 中下标从 start 到 end(不包含 end)的元素复制到 v 的起始位置,同时修改 vector 的大小为 end - start。需要注意的是,如果截取后的元素数量为 0,resize 函数会清空 vector 的内容。
希望以上内容对您有所帮助,如果您还有其他问题,请随时提出。