• STL 小白学习(1) 初步认识


     1 #include <iostream>
     2 using namespace std;
     3 #include <vector> //动态数组
     4 #include <algorithm>//算法
     5 
     6 void PrintVector(int v) {
     7     cout << v<<" ";
     8 
     9 }
    10 
    11 /*
    12 STL 
    13 容器算法迭代器
    14 基本语法
    15 */
    16 void test01() {
    17     vector<int> v; //定义一个容器 指定存放的元素类型
    18     v.push_back(10); //把元素放入容器尾部
    19     v.push_back(30);
    20     v.push_back(40);
    21     v.push_back(50);
    22     //STL foreach函数
    23     //容器提供迭代器
    24     //vector<int>::iterator 迭代器类型 等号重载 返回迭代器类型(指针)
    25     vector<int>::iterator pBegin = v.begin();
    26     vector<int>::iterator pEnd = v.end();
    27     //容器中可能存放基础数据类型,也可能存放自定义数据类型
    28     //PrintVector 回调函数 将每个参数传入,并处理
    29     for_each(pBegin, pEnd, PrintVector);
    30 
    31 }
    32 
    33 //容器也可以存放自定义类型的数据
    34 class Person {
    35 public:
    36     Person(int age, int id) :age(age), id(id) {};
    37 public:
    38     int age;
    39     int id;
    40 
    41 };
    42 
    43 void test02() {
    44     //创建V 并制定容器元素类型为Person
    45     vector<Person> v;
    46     Person p1(10, 20), p2(30, 40);
    47     v.push_back(p1);
    48     v.push_back(p2);
    49     v.pop_back();
    50 
    51     for (vector<Person>::iterator it = v.begin(); it != v.end(); it++) {
    52         cout << (*it).age << " " << (*it).id << " " << endl;
    53         //vector<Person> v; <>里放的是什么 取*就是什么类型
    54     }
    55 }
    56 
    57 //algorithm
    58 //容器存放person* 进行打印 自练
    59 //容器里面嵌套容器 一个容器作为另一个容器的元素
    60 
    61 
    62 int main() {
    63     test02();
    64 }
  • 相关阅读:
    Python 多线程,文件io
    Python map/reduce函数式编程
    LeetCode 77 组合
    LeetCode 198 打家劫舍
    LeetCode 138 复制带随机指针的链表
    LeetCode 445 两数相加 II
    LeetCode 2 两数相加
    LeetCode 215 数组中的第K个最大元素
    和为S的两个数字
    数组中重复的数字
  • 原文地址:https://www.cnblogs.com/likeghee/p/10169443.html
Copyright © 2020-2023  润新知