C++ Primer 第九章 9.2 容器库概览 练习和总结

9.2 容器库概览

容器库的操作分为通用的,顺序容器(大部分)通用的,关联容器(大部分)通用的,以及容器特有的操作。

对于容器的通用操作,如表所示:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
可以看到容器的通用操作大部分是和迭代器有关的。

有几个可能会被忘记的点是:
1.可以使用迭代器表示一个范围来初始化容器
2.可以使用swap来交换两个容器的元素

同样,我觉得这些东西不需要死记,在需要用到的时候再查也不迟。

练习

9.2

list<deque<int>> data;

9.2.1 迭代器

迭代器的以下操作基本是通用的。

iter++;
iter--;//forward_list不支持,顾名思义嘛,forward_list是单向的
iter1==iter2;
iter1!=iter2;
*iter;
iter->data;

而这些操作是string ,vector,deque,array才能用的

iter+n;
iter-n;
iter1>iter2;
iter1<iter2;
iter1<=iter2;
iter1>=iter2;
iter1-iter2;

迭代器范围

迭代器返回是一个编程的规范,编译器是不会检查这个的。

范围由两个迭代器决定,两个迭代器通常为begin和end。

begin指向容器的第一个元素,而end指向元素的最后一个元素之后的位置。

容器的end指向最后一个元素的下一元素的位置的好处。

我们可以通过begin==end来判断容器是否为空。

需要满足以下的条件,才能称之为一个迭代器范围

1.两个迭代器指向同一个容器中的元素或者最后一个元素之后的位置
2.begin要大于等于end,即,begin可以递增达到end。

一个迭代器范围包含了begin但是不包含end。

练习

9.3
1.两个迭代器都指向同一个容器的元素或者指向容器的最后一个元素的之后的位置
2.“begin”要大于“end”,即“begin”可以通过递增的方式达到“end”;

9.4

bool get_value_index(const vector<int> &vec, int value) {
   
	bool can_find = false;
	for (vector<int>::const_iterator begin = vec.begin(); begin != vec.end(); begin++) {
   
		if (*begin == value) {
   
			can_find = true;
			break;
		}
	}
	return can_find;
}
测试用例
vector<int> vec = {
   3,2,3,4,4,6,7,6,4,4,5,43,3,1};
	int i = 4;
	cout << get_value_index(vec,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值