C++ primer 9.3.3 节习题答案

本文介绍了C++编程中如何删除容器(如vector和list)内的偶数元素。通过示例代码展示了使用迭代器配合erase()函数进行元素删除的过程,以及在不同迭代器条件下删除的操作情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

9.25

9.26


9.25

        容器(除array外(array 创建时都是固定大小的,不能改变(不能使用下面的方法))有许多的删除元素的方法:

        如:pop_back()    、pop_front()    、erase()     、clear()

        相等时:不发生删除操作(之间的范围也是空的)

        elem2为尾后迭代器时:删除 elem1 到最后一个元素

        都为尾后迭代器时:不发生删除操作(之间的范围也是空的)

9.26

#include<iostream>
#include<list>
#include<vector>
using namespace std;
int main()
{
    vector<int> ve;
	list<int> li;
	int ia[] = { 0,1,1,2,3,5,6,13,21,55,89 };
	for (int i = 0; i < sizeof(ia) / sizeof(int); ++i)
	{
		ve.push_back(ia[i]);
		li.push_back(ia[i]);
	}

	vector<int>::iterator it = ve.begin();
	list<int>::iterator iter = li.begin();
	for (it; it != ve.end();)
	{
		if (*it % 2 == 0)
		{
			it = ve.erase(it);
		}
		else
		{
			++it;
		}
	}
	while (iter!=li.end())
	{
		if (*iter % 2)
		{
			iter = li.erase(iter);
		}
		else
		{
			++iter;
		}
	}
	for (auto p = ve.begin(); p != ve.end(); ++p)
	{
		cout << *p << " ";
	}
	cout << endl;
	auto q = li.begin();
	while (q!=li.end())
	{
		cout << *q << " ";
		++q;
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值