C++标准模板库(STL)(2) 之 vector模板类 (自学笔记)

目录

前言

一、标准模板库 STL 概念:

二、类模板 vector

1、定义

2、访问

3、STL容器提供了一些基本的方法,这些方法当然也适用于vector

4、迭代器

(1)概念

(2)示例

(3)超过结尾(past-the-end)

(4)push_back()方法:将元素添加到矢量末尾

(5)erase()方法:删除矢量中给定区间的元素。

(6)insert()方法:插入其它矢量中给定区间的元素到当前矢量位置。

5、STL定义的非成员函数

(1) for_each()方法

(2) random_shuffle()方法

(3) sort()方法


前言

由于工作需要,要补一下C++的知识,主要是vector模板类和map模板类,以前在学校里学C++只学了类、对象、继承、多态等一些面向对象的基本思想,并没有接触到标准模板库(STL)的内容。本篇文章记录下自己对STL中,vector(矢量)模板类的基础学习

初学的同学我们可以交流、补充我的不足,大佬光临还希望能提出建议。无论如何,您的建言我都将感激不尽~。

本文参考书籍:《C++ Primer Plus》。

一、标准模板库 STL 概念:

STL提供了一组表示容器、迭代器、函数对象、算法的模板。STL能够构造各种容器(包括数组、队列、链表),和执行各种操作(搜索、排序、随机排列)。

容器:是一个与数组类似的单元,可以存储若干个值。STL容器是同质的,即存储的值的类型相同。

迭代器:遍历容器的对象,与能够遍历数组的指针类似,是广义指针

函数对象:类似于函数的对象,可以是类对象或函数指针(包括函数名,因为函数名被用作指针)。

算法:完成特定任务的方法(排序)。
        

STL不是面向对象的编程,而是一种不同的编程模式(泛型编程)

二、类模板 vector

可在运行阶段设置vector对象的长度,附加新数据,中间插入数据。

实际上,vector类确实使用new和delete来管理内存,这种工作是自动完成的。

 

1、定义

vector<typeName> vt(n_elem)

(1) 释义:声明创建一个名为vt的vector对象,它可以存储n_elem个typeNmae类型的元素。

(2) 在定义形式上和数组定义类比:vector<int> a(n);  VS  int a[n];   相比数组,模板的操作比较复杂,需要使用vector包中的各种方法。

(3) 示例:

#includ <vector> //需要头文件
using namespace std;  //vector包含在命名空间std内。

int main()
{
    ...

    //vi是一个vector<int>对象,存储1个int类型的元素
    vector<int> vi;  
    int n;

    //vd是一个vector<double>对象,存储n个double型的元素。
    cin >> n;
    vector<double> vd(n);

    ...

    return 0;
}

vi是一个vector<int>对象,vd是一个vector<doub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值