相关文章推荐
八块腹肌的匕首  ·  標準圖樣 - 建築署·  7 月前    · 
温柔的槟榔  ·  視覺系統- CV-X 系列| ...·  7 月前    · 
爱喝酒的茶叶  ·  孫芮Radio | Spotify ...·  8 月前    · 
重感情的大象  ·  院系部门·  8 月前    · 

vector 截取部分

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 的内容。

希望以上内容对您有所帮助,如果您还有其他问题,请随时提出。

  •