栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

删除数组中的元素

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

删除数组中的元素

Method 1

利用动态数组,且删除后容器的大小也相应变小。(erase+remove)

#include
#include
using namespace std;
int main() {
	int n,k;
	cin >> n;
	vectora(n);
	//定义一个含n个元素的动态数组
	int m;
	for (int i = 0; i < n; i++) {
		cin >> m;
		a[i] = m;
	}//赋初值
	cin >> k;
	a.erase(remove(a.begin(), a.end(), k), a.end());
	//erase函数和remove函数结合使用,把a中所有和k相等的元素都删掉
	cout << a[0];
	for (vector::iterator it = a.begin()+1; it != a.end(); ++it) // 定义了vector类型的迭代器it
		cout <<" "<< * it << endl;
	return 0;
}
Method 2

不改变容器的大小。(remove)且输出整个容器

#include
#include
using namespace std;
int main() {
	int n,k;
	cin >> n;
	vectora(n);
	int m;
	for (int i = 0; i < n; i++) {
		cin >> m;
		a[i] = m;
	}
	cin >> k;
	remove(a.begin(), a.end(), k);//只使用remove不会改变容器本身的大小,况且remove也不是a的成员函数,它的使用不局限于某个容器。不过这样的话容器的有效的数只在前几个,后面的值被remove之后就成了随机数
	cout << a[0];
	for (vector::iterator it = a.begin()+1; it != a.end(); ++it) // 定义了vector类型的迭代器it
		cout <<" "<< * it;
	return 0;
}
Method 3

不改变容器的大小(remove)且输出容器中的有效数字

#include
#include
#include
#include
using namespace std;
int main() {
	int n, k;
	cin >> n;
	vectora(n);
	int m;
	for (int i = 0; i < n; i++) {
		cin >> m;
		a[i] = m;
	}
	cin >> k;
	vector::iterator ret = remove(a.begin(), a.end(), k);
	cout << a[0];
	if (ret != a.begin()) {
		for (vector::iterator i = a.begin()+1; i != ret; i++) {
			cout << " " << *i;
		}
	}
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/334324.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号