高效附加向量
处理向量时,一项常见任务涉及将一个向量附加到另一个向量。虽然有一种通过重复插入来实现此目的的简单方法,但这不是最有效的方法。
为了高效的向量串联,C 提供了 insert 方法。假设你有两个向量 a 和 b,你可以将 b 无缝附加到 a,如下所示:
a.insert(a.end(), b.begin(), b.end());
此代码片段利用 insert 将 b 中的整个范围的元素插入到 a 中 a.end() 指定的位置。
或者,您可以使用 C 11 兼容的 std::begin 和 std::end 函数可实现相同的结果:
a.insert(std::end(a), std::begin(b), std::end(b));
这个变体更通用,可以与数组和向量一起使用。
为了获得更大的灵活性,您可以使用 ADL(参数相关)查找)与用户定义类型:
using std::begin, std::end; a.insert(end(a), begin(b), end(b));
总之,insert 提供了一种在 C 中附加向量的高效且便捷的方法,使您能够使用扩展的向量序列轻松。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3