泛型学习笔记(一)

本文深入探讨了C++中的泛型算法,强调它们与元素类型和容器无关的特性,允许在多种数据结构上进行通用操作。迭代器作为泛型指针,用于遍历容器中的元素。文章还介绍了vector、list和deque三种顺序性容器的特性和适用场景,并详细阐述了它们的常见操作,如插入、删除和访问元素的方法。此外,还涵盖了容器的基本操作,如空检查、大小获取和元素清除。
摘要由CSDN通过智能技术生成

泛型算法的概念

泛型算法提供了许多可作用于容器类以及数组类型上的操作。这谁算法之所以被称为泛型,是因为它们和它们想要操作的元素类型无关。它们同样也和容器类型无关。 ————【美】Stanley B . Lippman

Iterator(迭代器|泛型指针)

# include <iostream>
# include <vector>
using namespace std;
int main()
{
	int arry[5] = {1,2,3,4,5};
	vector<int> svec (arry, arry + 5);
	for (vector<int>::const_iterator iter = svec.begin(); iter != svec.end(); ++iter)
	{
		cout << *iter << ' ';
	}
}

迭代器的声明方式为:容器名<类型名>::iterator 变量名
欲通过iterator取得元素值,一般用指针提领。

容器的共同操作

  • ==和!=运算符,返回true或false
  • =运算符,将某个容器复制给另一个容器
  • empty()会在容器无任何元素时返回true,否则返回false
  • size()返回容器内目前持有的元素个数
  • clear()删除容器的所有元素
  • begin()都是指向容器的第一元素。
  • end()都是返回容器的最后一个元素的下一个位置;
  • insert(),将单一或者某一个范围内的元素插入容器。
  • erase(),都是将容器内的单一元素或者某个范围内的元素,删除。

顺序性容器

vector

vector以一块连续内存来存放元素。适合对其进行随机访问但不适合对最后一个元素以外的任意元素进行插入和删除操作。

list

list中的每个元素都包括value、back指针、front指针适合元素的插入删除操作但不适合随机访问。

deque

与vector相似,但对于前端和末端元素插入和删除效率高。

操作函数

  • push_back()和pop_back() 在末端添加删除元素
  • push_front()和pop_front() 在前端添加删除元素
  • iterator insert(iterator position,elemType value)将value插入position之前。
  • void insert(iterator position,int count,elemType value)在position之前插入count个元素,这些元素的值都和value相同。
  • void insert(iterator1 position,iterator2 first,iterator2 last)可在position之前插入[first,last)所表示的各个元素。
  • iterator erase(iterator posit)删除posit所指元素。
  • iterator erase(iterator first,iterator last)删除[first,last)范围内元素。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值