[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-home-live-entry-setting":3,"site-header-contests":8,"site-header-camps":49,"study-material-detail-study-3":104},{"enabled":4,"title":5,"statusText":5,"buttonText":5,"campSlug":5,"stage":6,"classroomId":7,"hasClassroom":4},false,"",0,null,{"total":9,"list":10,"pageNum":44,"pageSize":45,"size":9,"startRow":44,"endRow":9,"pages":44,"prePage":6,"nextPage":6,"isFirstPage":46,"isLastPage":46,"hasPreviousPage":4,"hasNextPage":4,"navigatePages":47,"navigatepageNums":48,"navigateFirstPage":44,"navigateLastPage":44},3,[11,25,35],{"slug":12,"title":13,"logo":7,"liveUrl":14,"prize":15,"sponsor":16,"description":17,"organizer":18,"startTime":19,"endTime":20,"registrationDeadline":21,"status":22,"dashboardVisibility":23,"createdAt":24},"spring2026","2026春季启元人工智能大赛","https:\u002F\u002Fwww.bilibili.com\u002Fblackboard\u002Flive\u002Flive-activity-player.html?cid=1822703816&quality=0","200,000","麒麟软件有限公司","“2026春季启元人工智能大赛”是由启元实验室主办的面向全国人工智能领域开发者、科研人员及高校学生的权威赛事。大赛旨在促进与培养具备工程实践能力和创新能力的优秀人工智能领域开发者、推广国产软硬件技术与生态、助力国家人工智能产业高质量发展。\n各参赛选手需在规定的比赛周期内，依据赛事规则选定赛题并完成相应挑战，优胜者将共同角逐总额20万元的赛事奖金池，并且还将有机会获得实习和知名企业优质岗位内推资格。","启元实验室","2026-04-19 16:00:00","2026-07-13 16:00:00","2026-06-16 16:00:00","ongoing","private","2026-04-16 08:00:00",{"slug":26,"title":27,"logo":7,"liveUrl":14,"prize":28,"sponsor":7,"description":29,"organizer":18,"startTime":30,"endTime":31,"registrationDeadline":32,"status":33,"dashboardVisibility":23,"createdAt":34},"autumn2025","2025秋季启元人工智能大赛","150,000","“2025秋季启元人工智能大赛”是由启元实验室主办的面向全国人工智能领域开发者、科研人员及高校学生的权威赛事。大赛旨在促进与培养具备工程实践能力和创新能力的优秀人工智能领域开发者、推广国产软硬件技术与生态、助力国家人工智能产业高质量发展。","2025-11-08 08:00:00","2026-01-13 08:00:00","2025-12-30 08:00:00","ended","2025-11-03 08:00:00",{"slug":36,"title":37,"logo":7,"liveUrl":14,"prize":38,"sponsor":7,"description":39,"organizer":18,"startTime":40,"endTime":41,"registrationDeadline":42,"status":33,"dashboardVisibility":23,"createdAt":43},"summer2025","启元人工智能大赛(系统方向)","80,000","启元人工智能大赛由启元实验室主办，其中系统赛道基于启元实验室九源软件栈的相关开源项目，通过拉动开源社区力量，一方面促进国产智能计算生态的发展，另一方面也为人工智能系统方向的学生及从业者提供一个实践平台。","2025-07-08 08:00:00","2025-08-25 08:00:00","2025-07-22 08:00:00","2025-06-22 08:00:00",1,5,true,8,[44],{"total":45,"list":50,"pageNum":44,"pageSize":45,"size":45,"startRow":44,"endRow":45,"pages":44,"prePage":6,"nextPage":6,"isFirstPage":46,"isLastPage":46,"hasPreviousPage":4,"hasNextPage":4,"navigatePages":47,"navigatepageNums":103,"navigateFirstPage":44,"navigateLastPage":44},[51,62,73,84,94],{"id":52,"slug":53,"title":54,"logo":55,"publicLiveEmbedUrl":14,"description":56,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":16,"startTime":58,"endTime":59,"status":22,"dashboardVisibility":60,"createdAt":58,"updatedAt":61},"019eeeff-6b00-7d55-a629-efafded3e232","summer2026","2026年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2026-06\u002F019eef7f-7816-7828-9309-79c2c61dd568.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=tqXtkjDVEuQBnsL07LARCfQJvdE%3D","由启元实验室发起的InfiniTensor大模型与人工智能系统训练营，面向开源社区、高校及产业界伙伴开放。活动以「普及AI全栈知识技术、培养工程实践与创新型人才、推广国产软硬件技术生态」为核心目标，助力国家人工智能产业高质量发展。","...","2026-06-22 08:00:00","2026-10-19 08:00:00","public","2026-10-12 08:00:00",{"id":63,"slug":64,"title":65,"logo":66,"publicLiveEmbedUrl":7,"description":67,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":68,"startTime":69,"endTime":70,"status":33,"dashboardVisibility":23,"createdAt":71,"updatedAt":72},"019af3f3-e06a-7245-aa8d-37dc99a69c73","winter2025","2025年冬季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2025-12\u002F019afc69-b7ca-7805-91fb-605429671c01.png?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=tM28gi%2FKPywJvel7AqVcxFGnKTg%3D","由启元实验室发起的InfiniTensor大模型与人工智能系统训练营，面向开源社区、高校及产业界伙伴开放。活动以「普及AI全栈知识技术、培养工程实践与创新型人才、推广国产软硬件技术生态」为核心目标，助力国家人工智能产业高质量发展。 \n","新华三技术有限公司","2025-12-25 08:00:00","2026-03-27 08:00:00","2025-12-06 08:00:00","2026-10-22 20:24:30",{"id":74,"slug":36,"title":75,"logo":76,"publicLiveEmbedUrl":7,"description":77,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":78,"startTime":79,"endTime":80,"status":81,"dashboardVisibility":23,"createdAt":82,"updatedAt":83},"01980342-208c-7803-b3f3-19e1d31960ba","2025年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2025-07\u002F0198045e-28fe-78f0-95fe-23835ce58395.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=RSwSsL0Rw0AFxM%2Bz65pGHzs2YLw%3D","InfiniTensor大模型与人工智能系统训练营由启元实验室及清华大学 AI 系统方向团队发起，面向开源社区、高校和产业界，普及人工智能各方面知识和技术，培养相关人才。训练营联合开源项目开发者、学术界大牛、工业界资深工程师参与授课与项目指导。课程采用「线上直播授课 + 在线答疑 + 项目实践辅导 」的方式进行，确保每位同学都能获得充分成长。训练营全程免费，通过视频、直播课、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。","北京积算科技有限公司","2025-07-14 08:00:00","2025-09-30 08:00:00","upcoming","2025-07-13 08:00:00","2026-10-22 20:24:58",{"id":85,"slug":86,"title":87,"logo":88,"publicLiveEmbedUrl":7,"description":89,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":5,"startTime":90,"endTime":91,"status":81,"dashboardVisibility":23,"createdAt":92,"updatedAt":93},"01980cf9-a7d8-7796-ae86-0bbe05334add","winter2024","2024年冬季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Ftesting-cdn.infinitensor.com\u002Fuploads\u002F2025-07\u002F01981269-ce23-7624-a287-9f07dd0d85f6.jpg","InfiniTensor大模型与人工智能系统训练营由清华大学发起，面向开源社区、高校和产业界，普及人工智能各方面知识和技术，培养相关人才。训练营全程免费，通过视频、直播课、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。报名学员请阅读“导学”课程页的训练营介绍。","2025-01-05 08:00:00","2025-03-22 08:00:00","2025-07-15 08:00:00","2026-10-22 20:24:39",{"id":95,"slug":96,"title":97,"logo":98,"publicLiveEmbedUrl":7,"description":99,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":5,"startTime":100,"endTime":101,"status":81,"dashboardVisibility":23,"createdAt":92,"updatedAt":102},"01980c20-363a-7dc3-8f5a-58a68e08dcc4","summer2024","2024年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Ftesting-cdn.infinitensor.com\u002Fuploads\u002F2025-07\u002F01981269-fbfa-788a-afcd-17fa9be74ff9.jpg","InfiniTensor大模型与人工智能系统训练营由清华大学发起，面向开源社区和高校，普及人工智能各方面知识和技术，培养相关人才。训练营全程免费，通过课程、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。","2024-07-20 08:00:00","2024-09-29 08:00:00","2026-10-22 20:24:49",[44],{"currentItem":105,"processedData":125},{"img":106,"keywords":107,"treeType":44,"description":108,"showStatus":44,"updateTime":109,"type":110,"title":111,"content":112,"nextArticle":113,"createTime":109,"sortOrder":117,"canonicalPath":118,"id":119,"contentType":120,"prevArticle":121},"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_03_fm.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=lWnkGUtHzJp5AU8eYFOzxalxuZc%3D","InfiniTensor,冬季训练营,C++实践,实操训练,算法基础","C++ 实践3课程聚焦实操训练，强化语法应用、程序组织与基础算法实现能力。","2026-10-22 20:38:11",2,"InfiniTensor冬季训练营实践编程基础课第三课《C++实践3》","![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_03_zw1.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=A80KfTnHeWgchRKifQt8H%2Bv5Yig%3D)\r\n\r\n\r\n1月6日，2025冬季 InfiniTensor 大模型与人工智能系统训练营编程基础课第三课开讲，课程主题为《`C++`实践3》。\r\n\r\n本节课引入动态容量（capacity）概念，支持变长数组、实现动态内存分配（new\u002Fdelete）、封装为Vector类、引入RAII（资源获取即初始化）、介绍运算符重载与模板类（Template）。\r\n\r\n### 动态容量与变长数组\r\n**1. 问题引入**\r\n- 固定大小的数组局限性（如`size=3`无法存储更多元素）\r\n- 变长数组（VLA）在`C++`中的不支持性\r\n\r\n**2. 解决方案：动态内存分配**\r\n- 使用`new`\u002F`new[]`动态分配堆内存：\r\n```cpp\r\ndata = new double[capacity]; \u002F\u002F 动态分配capacity大小的数组\r\n```\r\n- 初始化时设置初始容量（如`capacity=16`），`size=0`\r\n\r\n**3. 关键操作：push_back**\r\n- 功能：向数组末尾添加元素\r\n```cpp\r\nvoid push_back(double elem) {\r\n    if (size \u003C capacity) {\r\n        data[size] = elem;\r\n        size++;\r\n    }\r\n}\r\n```\r\n### 内存管理与RAII\r\n\r\n**1. 内存分区概念**\r\n- 栈(Stack)：局部变量存储，自动管理，大小有限\r\n- 堆(Heap)：动态内存分配，手动管理，空间较大\r\n\r\n**2. 动态内存的释放**\r\n- 问题：未释放`new[]`分配的内存导致泄漏\r\n- 解决方案：在析构函数中`delete[] data`\r\n\r\n**3. RAII设计模式**\r\n- 构造函数（Constructor）：初始化资源（分配内存）\r\n- 析构函数（Destructor）：释放资源（释放内存）\r\n```cpp\r\nclass Vector {\r\nprivate:\r\n    double* data;\r\n    size_t size;\r\n    size_t capacity;\r\npublic:\r\n    Vector() : capacity(16), size(0) {\r\n        data = new double[capacity];\r\n    }\r\n    ~Vector() { delete[] data; }\r\n};\r\n```\r\n**3. 访问控制：public与private**\r\n- private：内部实现细节，外部不可访问\r\n- public：对外接口，外部可访问\r\n\r\n### 运算符重载与封装\r\n**1. 下标运算符重载**\r\n- `operator[]`实现数组式访问：\r\n```cpp\r\ndouble operator[](size_t index) const {\r\n    return data[index];\r\n}\r\n```\r\n**2. 常量成员函数**\r\n- 标记不修改对象状态的函数为`const`（如`operator[]`）：\r\n```cpp\r\ndouble operator[](size_t index) const; \u002F\u002F 声明为const函数\r\n```\r\n**3. 方法封装**\r\n- 提供`size()`和`capacity()`方法替代直接访问成员变量：\r\n```cpp\r\nsize_t size() const { return size; }\r\nsize_t get_capacity() const { return capacity; }\r\n```\r\n### 模块化与头文件分离\r\n**1. 头文件（`.h`）与源文件（`.cpp`）**\r\n- 头文件声明类与接口：\r\n```cpp\r\n\u002F\u002F Vector.h\r\nclass Vector {\r\npublic:\r\n    Vector();\r\n    ~Vector();\r\n    void push_back(double elem);\r\n    double operator[](size_t index) const;\r\n    size_t size() const;\r\nprivate:\r\n    double* data;\r\n    size_t size;\r\n    size_t capacity;\r\n};\r\n```\r\n- 源文件实现细节：\r\n```cpp\r\n\u002F\u002F Vector.cpp\r\n#include \"Vector.h\"\r\nVector::Vector() { \u002F* ... *\u002F }\r\nVector::~Vector() { \u002F* ... *\u002F }\r\n```\r\n**2. 编译与链接**\r\n- 编译多文件项目：\r\n```bash\r\ng++ main.cpp Vector.cpp -o main\r\n```\r\n### 模板类（Template）\r\n**1. 泛型编程需求**\r\n- 问题：当前Vector仅支持double类型\r\n- 目标：支持任意类型（如int、string）\r\n\r\n**2. 模板类实现**\r\n- 定义模板参数T：\r\n```cpp\r\ntemplate \u003Ctypename T>\r\nclass Vector {\r\nprivate:\r\n    T* data;\r\n    size_t size;\r\n    size_t capacity;\r\npublic:\r\n    Vector() : capacity(16), size(0) {\r\n        data = new T[capacity];\r\n    }\r\n    void push_back(T elem) { \u002F* ... *\u002F }\r\n    T operator[](size_t index) const { \u002F* ... *\u002F }\r\n};\r\n```\r\n**3. 使用模板类**\r\n实例化模板类：\r\n```cpp\r\nVector\u003Cint> int_vec;    \u002F\u002F 存储int类型\r\nVector\u003Cstring> str_vec; \u002F\u002F 存储string类型\r\n```\r\n\r\n\r\n### 总结与展望\r\n本节主要讲解了动态内存分配与RAII设计模式，运算符重载与访问控制，模块化编程与模板类。后续课程将继续深入讲解C++高级特性，并引入更多实际案例。\r\n\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_01_zw6.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=epXM94790JRyVZK5KPiIf95EZZQ%3D)\r\n\r\n\r\n### 📚 训练营报名持续进行中\r\n扫码报名与加入群聊，或点击 **「阅读原文」** 直达官网报名\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_01_zw7.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=T6W1BlHdoBa2bd0P%2B0OABUI5sTc%3D)",{"publishTime":7,"createTime":109,"canonicalPath":114,"id":115,"title":116},"\u002Fstudy-material\u002Fstudy-2","study-2","InfiniTensor冬季训练营实践编程基础课第二课《C++实践2》",106,"\u002Fstudy-material\u002Fstudy-3","study-3","markdown",{"publishTime":7,"createTime":109,"canonicalPath":122,"id":123,"title":124},"\u002Fstudy-material\u002Fstudy-4","study-4","InfiniTensor冬季训练营编程基础课第四课《C++实践4》",{"htmlContent":126,"headings":127},"\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_03_zw1.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=A80KfTnHeWgchRKifQt8H%2Bv5Yig%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>1月6日，2025冬季 InfiniTensor 大模型与人工智能系统训练营编程基础课第三课开讲，课程主题为《\u003Ccode>C++\u003C\u002Fcode>实践3》。\u003C\u002Fp>\n\u003Cp>本节课引入动态容量（capacity）概念，支持变长数组、实现动态内存分配（new\u002Fdelete）、封装为Vector类、引入RAII（资源获取即初始化）、介绍运算符重载与模板类（Template）。\u003C\u002Fp>\n\u003Ch3 id=\"动态容量与变长数组\">\u003Ca class=\"anchor\" href=\"#动态容量与变长数组\" aria-label=\"跳转到标题：动态容量与变长数组\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>动态容量与变长数组\u003C\u002Fh3>\u003Cp>\u003Cstrong>1. 问题引入\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>固定大小的数组局限性（如\u003Ccode>size=3\u003C\u002Fcode>无法存储更多元素）\u003C\u002Fli>\n\u003Cli>变长数组（VLA）在\u003Ccode>C++\u003C\u002Fcode>中的不支持性\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>2. 解决方案：动态内存分配\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>使用\u003Ccode>new\u003C\u002Fcode>\u002F\u003Ccode>new[]\u003C\u002Fcode>动态分配堆内存：\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-cpp\">data = new double[capacity]; \u002F\u002F 动态分配capacity大小的数组\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>初始化时设置初始容量（如\u003Ccode>capacity=16\u003C\u002Fcode>），\u003Ccode>size=0\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>3. 关键操作：push_back\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>功能：向数组末尾添加元素\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-cpp\">void push_back(double elem) {\n    if (size &lt; capacity) {\n        data[size] = elem;\n        size++;\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"内存管理与raii\">\u003Ca class=\"anchor\" href=\"#内存管理与raii\" aria-label=\"跳转到标题：内存管理与RAII\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>内存管理与RAII\u003C\u002Fh3>\u003Cp>\u003Cstrong>1. 内存分区概念\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>栈(Stack)：局部变量存储，自动管理，大小有限\u003C\u002Fli>\n\u003Cli>堆(Heap)：动态内存分配，手动管理，空间较大\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>2. 动态内存的释放\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>问题：未释放\u003Ccode>new[]\u003C\u002Fcode>分配的内存导致泄漏\u003C\u002Fli>\n\u003Cli>解决方案：在析构函数中\u003Ccode>delete[] data\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>3. RAII设计模式\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>构造函数（Constructor）：初始化资源（分配内存）\u003C\u002Fli>\n\u003Cli>析构函数（Destructor）：释放资源（释放内存）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-cpp\">class Vector {\nprivate:\n    double* data;\n    size_t size;\n    size_t capacity;\npublic:\n    Vector() : capacity(16), size(0) {\n        data = new double[capacity];\n    }\n    ~Vector() { delete[] data; }\n};\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>3. 访问控制：public与private\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>private：内部实现细节，外部不可访问\u003C\u002Fli>\n\u003Cli>public：对外接口，外部可访问\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"运算符重载与封装\">\u003Ca class=\"anchor\" href=\"#运算符重载与封装\" aria-label=\"跳转到标题：运算符重载与封装\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>运算符重载与封装\u003C\u002Fh3>\u003Cp>\u003Cstrong>1. 下标运算符重载\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>operator[]\u003C\u002Fcode>实现数组式访问：\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-cpp\">double operator[](size_t index) const {\n    return data[index];\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>2. 常量成员函数\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>标记不修改对象状态的函数为\u003Ccode>const\u003C\u002Fcode>（如\u003Ccode>operator[]\u003C\u002Fcode>）：\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-cpp\">double operator[](size_t index) const; \u002F\u002F 声明为const函数\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>3. 方法封装\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>提供\u003Ccode>size()\u003C\u002Fcode>和\u003Ccode>capacity()\u003C\u002Fcode>方法替代直接访问成员变量：\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-cpp\">size_t size() const { return size; }\nsize_t get_capacity() const { return capacity; }\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"模块化与头文件分离\">\u003Ca class=\"anchor\" href=\"#模块化与头文件分离\" aria-label=\"跳转到标题：模块化与头文件分离\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>模块化与头文件分离\u003C\u002Fh3>\u003Cp>\u003Cstrong>1. 头文件（\u003Ccode>.h\u003C\u002Fcode>）与源文件（\u003Ccode>.cpp\u003C\u002Fcode>）\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>头文件声明类与接口：\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-cpp\">\u002F\u002F Vector.h\nclass Vector {\npublic:\n    Vector();\n    ~Vector();\n    void push_back(double elem);\n    double operator[](size_t index) const;\n    size_t size() const;\nprivate:\n    double* data;\n    size_t size;\n    size_t capacity;\n};\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>源文件实现细节：\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-cpp\">\u002F\u002F Vector.cpp\n#include &quot;Vector.h&quot;\nVector::Vector() { \u002F* ... *\u002F }\nVector::~Vector() { \u002F* ... *\u002F }\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>2. 编译与链接\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>编译多文件项目：\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-bash\">g++ main.cpp Vector.cpp -o main\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"模板类-template\">\u003Ca class=\"anchor\" href=\"#模板类-template\" aria-label=\"跳转到标题：模板类（Template）\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>模板类（Template）\u003C\u002Fh3>\u003Cp>\u003Cstrong>1. 泛型编程需求\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>问题：当前Vector仅支持double类型\u003C\u002Fli>\n\u003Cli>目标：支持任意类型（如int、string）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>2. 模板类实现\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>定义模板参数T：\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-cpp\">template &lt;typename T&gt;\nclass Vector {\nprivate:\n    T* data;\n    size_t size;\n    size_t capacity;\npublic:\n    Vector() : capacity(16), size(0) {\n        data = new T[capacity];\n    }\n    void push_back(T elem) { \u002F* ... *\u002F }\n    T operator[](size_t index) const { \u002F* ... *\u002F }\n};\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>3. 使用模板类\u003C\u002Fstrong>\u003Cbr>实例化模板类：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-cpp\">Vector&lt;int&gt; int_vec;    \u002F\u002F 存储int类型\nVector&lt;string&gt; str_vec; \u002F\u002F 存储string类型\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"总结与展望\">\u003Ca class=\"anchor\" href=\"#总结与展望\" aria-label=\"跳转到标题：总结与展望\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>总结与展望\u003C\u002Fh3>\u003Cp>本节主要讲解了动态内存分配与RAII设计模式，运算符重载与访问控制，模块化编程与模板类。后续课程将继续深入讲解C++高级特性，并引入更多实际案例。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_01_zw6.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=epXM94790JRyVZK5KPiIf95EZZQ%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch3 id=\"训练营报名持续进行中\">\u003Ca class=\"anchor\" href=\"#训练营报名持续进行中\" aria-label=\"跳转到标题：📚 训练营报名持续进行中\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>📚 训练营报名持续进行中\u003C\u002Fh3>\u003Cp>扫码报名与加入群聊，或点击 \u003Cstrong>「阅读原文」\u003C\u002Fstrong> 直达官网报名\u003Cbr>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_01_zw7.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=T6W1BlHdoBa2bd0P%2B0OABUI5sTc%3D\" alt=\"\">\u003C\u002Fp>\n",[128,130,133,135,137,140,142],{"id":129,"text":129,"level":9},"动态容量与变长数组",{"id":131,"text":132,"level":9},"内存管理与raii","内存管理与RAII",{"id":134,"text":134,"level":9},"运算符重载与封装",{"id":136,"text":136,"level":9},"模块化与头文件分离",{"id":138,"text":139,"level":9},"模板类-template","模板类（Template）",{"id":141,"text":141,"level":9},"总结与展望",{"id":143,"text":144,"level":9},"训练营报名持续进行中","📚 训练营报名持续进行中"]