2025年strace用法(stlvector的用法)

strace用法(stlvector的用法)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p>在 C&#43;&#43; 中&#xff0c; 是 STL&#xff08;标准模板库&#xff09;提供的一个动态数组容器&#xff0c;允许我们在运行时动态调整大小。vector 提供了许多方便的操作&#xff0c;使得它成为管理数据的理想选择。在这篇博客中&#xff0c;我们将探讨 vector 的一些常用操作方法&#xff0c;并提供一些拓展知识&#xff0c;帮助你更好地理解和使用这一强大的数据结构。</p> 

讯享网

1.1 默认构造函数

讯享网

创建一个空的 。

1.2 指定大小和初值

 

创建一个包含 5 个元素的 ,每个元素的初始值为 10。

1.3 使用列表初始化

讯享网

使用初始值列表来构造 。

1.4 拷贝构造函数

 

使用现有的 进行拷贝构造。

2.1 使用 操作符

讯享网

直接通过索引访问元素,但不检查边界。

2.2 使用 函数

 

与 类似,但 会检查索引是否合法,超出范围会抛出异常。

2.3 获取第一个和最后一个元素

讯享网

2.4 获取指向数据的指针

 

获取 中元素存储数组的指针。

3.1 添加元素

3.1.1 使用
讯享网

在 的末尾添加一个元素。

3.1.2 使用
 

在末尾原地构造一个元素,避免不必要的拷贝。

3.2 删除元素

3.2.1 使用
讯享网

移除 末尾的元素。

3.2.2 使用
 

移除指定位置的元素。

3.2.3 使用
讯享网

清空 中的所有元素。


讯享网

4.1 使用迭代器遍历

 

4.2 使用范围 循环

讯享网

4.3 使用反向迭代器

 

5.1 使用 和

讯享网

返回 中的元素个数, 返回当前分配的存储空间大小(可以容纳的元素个数)。

5.2 使用

 

预先分配至少能容纳 10 个元素的空间。

5.3 使用

讯享网

将 的大小调整为 8,如果新大小大于当前大小,多出的元素将使用 0 进行初始化。

6.1 避免不必要的拷贝

在插入元素时,尽量使用 而不是 ,可以减少一次对象的拷贝构造。

6.2 使用

 

将多余的容量释放,减少内存占用。

6.3 避免过度扩展

在已知 大小大致范围时,提前使用 分配足够的空间,避免扩展时频繁的内存分配。

7.1 的内存管理

使用的是动态数组来管理元素。当需要扩展时,它会分配一个更大的内存块,将原有元素拷贝过去。为了避免频繁的内存分配, 通常会预留比实际需要更多的空间,这就是 和 之间的差异。

7.2 异常安全性

的许多操作,如 、 等,可能会分配新的内存并移动对象。因此,在操作 时要考虑异常安全性。大多数情况下, 提供的是“强异常安全保证”,即如果发生异常,容器的状态不会被破坏。

7.3 与原始数组的比较

提供了动态调整大小、自动管理内存和许多便利的操作,而原始数组则更为简单且性能稍高。在需要高效内存使用的地方,可以考虑使用 或原始数组,但在大多数情况下, 是更安全和灵活的选择。

小讯
上一篇 2025-04-15 13:53
下一篇 2025-06-09 15:49

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/188949.html