STL学习笔记-入门概念

1. 入门概念

STL最大的特点: 实现了算法和数据结构的有效分离
STL主要内容:算法(algorithm)、容器(container)、迭代器(iterator)
                        容器 -> 提供数据结构
                        算法 -> 按照实际问题,对数据进行处理
                        迭代器 -> 使得容器和算法进行无缝对接

实例感受:

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

class Student{
public:
     int age;
     char name[64];    
     void printStuInfo() {
          cout << "age : " << age << endl;
     }

};

void main() {
     //容器:将元素拷入到容器中
     vector<int> v;
     v.push_back(-1);     
     v.push_back(1);     
     v.push_back(2);     
     v.push_back(1);     
     
     //迭代器:相当于一个指针,能访问容器中的数据
     for(vector<int>::iterator it = v.begin(); it != v.end(); it++) {
         cout << *it << " ";
     }

      //算法: 统计容器中1的个数, 算法和迭代器能进行无缝的连接
     int num = count(v.begin(), v.end(), 1);
     cout << " num of 1 : " << num << endl;
         
      //容器不仅可以装基本数据类型,还可以装复杂数据类型
     Student s1, s2, s3;
     s1.age = 18;
     s2.age = 19;
     s3.age = 20;

     vector<Student *> stu;
     stu.push_back(&s1);     
     stu.push_back(&s2);     
     stu.push_back(&s3);

     for(vector<Student *>::iterator it = stu.begin(); it != stu.end(); it++) {
          cout << (*it)->age << endl;   // *it 才是 Student * 类型的
     } 
}

容器简介:
容器的分类:
序列式容器:每个元素位置固定,取决于插入的时机,与元素值无关。
                     如vector、deque、list、quene、stack、priority_quene
关联式容器:元素位置取决于特定的排序准则,和插入顺序无关。
                      如set、multiset、map、multimap
容器中的元素是按照值赋值的方式进行的,因此容器类模板的类型必须提供拷贝构造函数
容器不仅可以装基本数据类型,还可以装复杂数据类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值