首页app攻略C++怎么输出百分数 c++怎么输出vector容器

C++怎么输出百分数 c++怎么输出vector容器

圆圆2025-07-29 12:01:19次浏览条评论

c 中的向量是一个动态备份,支持自动扩容,适合需要灵活大小的场景。它提供了push_back、emplace_back添加删除元素,pop_back元素,

C 中的向量是标准模板库(STL)中非常常用的一个容器,它本质上是一个动态备份,能够根据需要自动调整大小的场景。如果你之前用过普通的备份但又觉得它固定了备份麻烦,那个向量就是你的理想选择。基本操作:增删改查要会

向量的基本使用其实挺直观的,常见的操作包括添加元素、删除元素、访问元素和整个容器。可以添加元素用push_back()或者emplace_back(),这样删除效率可以略高一点。元素完成用pop_back()。访问元素可以直接用下标[]或者at()方法,后面会做边界检查。然后可以配合循环或者范围循环(基于范围的for循环)。

举个例子:

立即学习“C免费学习笔记(深入)”;#include lt;iostreamgt;#include lt;vectorgt;int main() { std::vectorlt;intgt; vec; vec.push_back(10); vec.push_back(20); vec.push_back(30); for(int i = 0; i lt; vec.size(); i) { std::cout lt;lt; vec[i] lt;lt; lt; quot; quot;; }}登录后复制

代码输出就是10 20 30,看起来不太像备份?但不一样的是,它的容量是可以自动增长的。动态扩容机制:别让性能拖后腿

向量内部维护了一个连续的内存块,当这个内存不够用了,它就会重新申请一块更大的空间,把原来的数据复制过去,然后释放旧内存。这个过程称为“扩容”。

情况默认下,向量 扩容通常是按当前容量的一定倍数来增长的,比如翻倍。但你也可以提前预备好足够的空间,避免扩容带来的性能损失。vec.reserve(100); // 提前预备100个int的空间登录后复制

注意:调用reserve()只改变容量,不改变size(),此时vec.size()还是0,只要你可以放心往里加100

如果你在元素的时候发现程序变慢了,因为十有八九是向量在反复扩容,这时候手动调用reserve()是个不错的优化手段。内存管理细节:小心别踩间隙

虽然向量管理内存很方便,但有些细节还是需要注意:插入或删除元素可能会导致迭代器失效,尤其是在中间插入时,整个容器的结构都可能发生变化。如果你存储的是指针类型,比如向量,请记住手动释放每个指针指向的内存,否则容易造成内存泄漏。

使用clear()清空数据之后,内存不一定马上释放,想要真正释放内存可以配合shrink_to_fit():vec.clear();vec.shrink_to_fit(); //请求释放浪费内存登录后复制

还有一个常见误区是以为向量的size()和capacity()是一样的,其实capacity()表示当前分配的内存能容纳多少元素,而size()是实际已使用的数量的建议。向量使用技巧:几个实用技巧

这里再补充几个在实际开发中经常用到的小技巧:初始化列表赋值:可以用初始化列表快速构造一个向量std::vectorlt;intgt; vec = {1, 2, 3, 4, 5};登录后复制二维向量构造:适合表示矩阵等结构std::vectorlt;std::vectorlt;intgt;gt;matrix(3, std::vectorlt;intgt;(3, 0));登录后复制swap 快速清空或交换内容std::vectorlt;intgt;().swap(vec); // 快速清空vec并释放内存登录后复制使用emplace_back替代push_back:对于复杂对象来说,emplace_back()能减少拷贝一次构造的开支。

基本上就这些。vector用起来不算难,但想用得好,得模拟了解点内部的工作原理。

以上就是C向量容器如何使用详解动态阵列操作与内存管理的详细内容,更多请关注乐哥常识网其他相关文章!

C++ vector
大麦app下载官网 大麦app里怎么查询票真伪
相关内容
发表评论

游客 回复需填写必要信息