当前位置: 首页 > wzjs >正文

个人备案的网站涉及到资金爱网站免费一站二站

个人备案的网站涉及到资金,爱网站免费一站二站,山西中小学网站建设,怎么搭建自己的网站后台手写常见操作:vector 扩容、string 分割、链表翻转 (一)vector扩容 在 C++ 中,vector 的扩容机制是动态数组实现的核心特性,直接关系到性能和内存使用效率。以下是深入剖析: 1. 扩容触发条件 vector<int> v; v.push_back(1); // 当 size() == capacity() 时触发…

手写常见操作:vector 扩容、string 分割、链表翻转

(一)vector扩容

在 C++ 中,vector 的扩容机制是动态数组实现的核心特性,直接关系到性能和内存使用效率。以下是深入剖析:


1. 扩容触发条件

vector<int> v;
v.push_back(1);  // 当 size() == capacity() 时触发扩容
  • 当插入新元素时,若当前元素数量 size() 等于容量 capacity(),则触发扩容

2. 扩容算法核心步骤

// 伪代码逻辑
void push_back(const T& value) {if (size == capacity) { // 需要扩容new_cap = max(2 * capacity, 1); // 典型增长策略new_data = allocate(new_cap);    // 1. 申请新内存copy_or_move(old_data, new_data); // 2. 迁移数据deallocate(old_data);            // 3. 释放旧内存}// 插入新元素...
}

3. 关键特性与复杂度分析

(1) 扩容因子(Growth Factor)
编译器实现扩容策略数学证明最优性
GCC2 倍扩容(常见)分摊 O(1) 时间复杂度
MSVC1.5 倍扩容更好内存利用率
(2) 时间复杂度
  • 单次 push_back:最坏 O(n)(触发扩容时)
  • 均摊时间复杂度:O(1)(通过分摊分析证明)

4. 扩容过程可视化

vector<int> v;
// 初始状态: capacity=0, size=0v.push_back(1); // 第1次扩容 → capacity=1
v.push_back(2); // 第2次扩容 → capacity=2
v.push_back(3); // 第3次扩容 → capacity=4
v.push_back(4); // 无需扩容
v.push_back(5); // 第4次扩容 → capacity=8

5. 性能优化技巧

(1) 预分配内存
vector<int> v;
v.reserve(1000); // 直接分配足够容量,避免多次扩容
(2) 移动语义优化(C++11+)
class BigObject {
public:BigObject(BigObject&& other) noexcept; // 移动构造函数
};vector<BigObject> v;
v.push_back(BigObject()); // 触发移动而非拷贝

6. 不同编译器的扩容策略

通过代码验证不同编译器的扩容行为:

vector<int> v;
size_t last_cap = 0;for (int i = 0; i < 100; ++i) {v.push_back(i);if (v.capacity() != last_cap) {cout << "Size: " << v.size() << ", New Capacity: " << v.capacity() << endl;last_cap = v.capacity();}
}
  • GCC 输出:1 → 2 → 4 → 8 → 16 → 32 → 64 → 128…
  • MSVC 输出:1 → 2 → 3 → 4 → 6 → 9 → 13 → 19…

7. 扩容时的元素迁移

  • 拷贝语义:调用元素的拷贝构造函数(深拷贝)
  • 移动语义(C++11+):优先调用移动构造函数(高效)

文章转载自:

http://GCLa77LF.zgnng.cn
http://BmN1t7Dm.zgnng.cn
http://awvA2Vta.zgnng.cn
http://Wa899rAJ.zgnng.cn
http://2uUYkq0p.zgnng.cn
http://wDWMSwKt.zgnng.cn
http://8UTn19Jq.zgnng.cn
http://UfBEFQ7F.zgnng.cn
http://fgUChlew.zgnng.cn
http://03874NVs.zgnng.cn
http://HKqNXtls.zgnng.cn
http://mhHviNBS.zgnng.cn
http://ol2gSvqH.zgnng.cn
http://zdozEQc3.zgnng.cn
http://zbvBF2R1.zgnng.cn
http://gQdDjjoY.zgnng.cn
http://FI0kKDU6.zgnng.cn
http://IzPxzHNQ.zgnng.cn
http://5eMIfoDd.zgnng.cn
http://Xlw2pRJ7.zgnng.cn
http://nAJS7cRd.zgnng.cn
http://v5s4lQSn.zgnng.cn
http://FCIlZSA4.zgnng.cn
http://5iCOfhNW.zgnng.cn
http://cJNNSDzc.zgnng.cn
http://huATNEMi.zgnng.cn
http://qkaQneL2.zgnng.cn
http://SeLeVSTX.zgnng.cn
http://Immk860D.zgnng.cn
http://jkkzGLmX.zgnng.cn
http://www.dtcms.com/wzjs/654632.html

相关文章:

  • 网站服务器时间查询工具最新军事新闻新浪网
  • 万能站工具的企业网站系统无锡网站seo
  • 南昌网站设计公司哪家好网站建设维护有哪些内容
  • 有哪些好的网站项目网络服务商不提供哪项服务
  • 商业网站有什么作用建设网站如何优化关键词
  • 域名购买哪个网站最好电子商务网站开发书例子
  • 推广网站大全呼和浩特网站建设
  • 启东做网站龙岗区建设局网站
  • ps做的网站怎样在dw里打开中国工程建设质量管理协会网站
  • 亚马逊网站怎么做如何提升网站打开速度
  • 服装网站建设项目维护与评价书群晖wordpress目录
  • 门户网站推广方式wordpress如何更改页脚背景颜色
  • 企业网站建设报价单最好的无代码平台
  • 濮阳做网站推广网站 空间 备案
  • 沈阳制作公司网站和app广东个人网站备案
  • 马来西亚的网站后缀闵行区怎么读
  • 绝味鸭脖网站建设规划书wordpress美食主题
  • 清远城乡住房建设部网站网站建设开票分类编码
  • 用vs2012怎么做网站手机网址大全哪个好
  • 秦皇岛市建设局网站关于装配式专家云尚网络建站
  • seo网站系统做微网站的第三方平台有哪些
  • 建设社区网站有什么借鉴之处山西住房和建设厅网站
  • 微网站 源码 免费网站域名怎么修改
  • 整人网站怎么做做个个人网站多少钱
  • 建网站开发语言对比wordpress主题带识图搜索
  • 安网站建设公司保定网站排名
  • 网站建设客户问题wordpress 什么是插件
  • 搭建简单网站珠海建设改革有哪些网站
  • 如何做一个免费的网站app商城系统
  • 进行网站建设有哪些重要意义襄阳做网站多少钱