写点什么

开心档之 C++ STL 教程

作者:雪奈椰子
  • 2023-04-18
    广东
  • 本文字数:826 字

    阅读完需:约 3 分钟

C++ STL 教程

在前面的章节中,我们已经学习了 C++ 模板的概念。C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。

C++ 标准模板库的核心包括以下三个组件:

这三个组件都带有丰富的预定义函数,帮助我们通过简单的方式处理复杂的任务。

下面的程序演示了向量容器(一个 C++ 标准的模板),它与数组十分相似,唯一不同的是,向量在需要扩展大小的时候,会自动处理它自己的存储需求:

实例

#include <iostream>#include <vector>using namespace std; int main(){   // 创建一个向量存储 int   vector<int> vec;    int i;    // 显示 vec 的原始大小   cout << "vector size = " << vec.size() << endl;    // 推入 5 个值到向量中   for(i = 0; i < 5; i++){      vec.push_back(i);   }    // 显示 vec 扩展后的大小   cout << "extended vector size = " << vec.size() << endl;    // 访问向量中的 5 个值   for(i = 0; i < 5; i++){      cout << "value of vec [" << i << "] = " << vec[i] << endl;   }    // 使用迭代器 iterator 访问值   vector<int>::iterator v = vec.begin();   while( v != vec.end()) {      cout << "value of v = " << *v << endl;      v++;   }    return 0;}
复制代码

当上面的代码被编译和执行时,它会产生下列结果:


vector size = 0extended vector size = 5value of vec [0] = 0value of vec [1] = 1value of vec [2] = 2value of vec [3] = 3value of vec [4] = 4value of v = 0value of v = 1value of v = 2value of v = 3value of v = 4
复制代码

关于上面实例中所使用的各种函数,有几点要注意:

  • push_back( ) 成员函数在向量的末尾插入值,如果有必要会扩展向量的大小。

  • size( ) 函数显示向量的大小。

  • begin( ) 函数返回一个指向向量开头的迭代器。

  • end( ) 函数返回一个指向向量末尾的迭代器。

用户头像

雪奈椰子

关注

还未添加个人签名 2022-07-22 加入

还未添加个人简介

评论

发布
暂无评论
开心档之C++ STL 教程_雪奈椰子_InfoQ写作社区