• 【算法与数据结构实战】线性表操作-实现A并B,结果放入A中


    //数据结构与算法基础题1:线性表操作,实现A并B,结果放入A中
    
    
    #include "stdafx.h"
    #include <iostream>
    #include <string>
    #include <vector>
    #include <algorithm>
    #pragma warning(disable:4996)
    
    using namespace std;
    
    int main()
    {
    	vector<int> set_A, set_B;
    	int num_of_elements_in_A, num_of_elements_in_B;
    	//下面输入集合A和B的元素
    	//从输入方便的角度考虑,没有进行去重,只在最后合并的时候进行了去重
    	cout << "请输入集合A的元素个数:";
    	cin >> num_of_elements_in_A;
    	if (num_of_elements_in_A <= 0) {
    		cout << "元素个数不可以小于0!" << endl;
    		return 1;
    	}
    	cout << "集合A元素个数为:" << num_of_elements_in_A << endl;
    	for (int i = 0; i < num_of_elements_in_A; i++) {
    		int temp = 0;
    		cout << "请输入集合A的第" << i + 1 << "个元素:";
    		cin >> temp;
    		set_A.push_back(temp);
    	}
    	cout << "请输入集合B的元素个数:";
    	cin >> num_of_elements_in_B;
    	if (num_of_elements_in_B <= 0) {
    		cout << "元素个数不可以小于0!" << endl;
    		return 1;
    	}
    	cout << "集合B元素个数为:" << num_of_elements_in_B << endl;
    	for (int i = 0; i < num_of_elements_in_B; i++) {
    		int temp = 0;
    		cout << "请输入集合B的第" << i + 1 << "个元素:";
    		cin >> temp;
    		set_B.push_back(temp);
    	}
    	//把B的元素先全部插入A中
    	vector<int>::iterator iter_B = set_B.begin();
    	while (iter_B != set_B.end())
    	{
    		set_A.push_back(*iter_B);
    		iter_B++;
    	}
    
    	sort(set_A.begin(), set_A.end());
    	set_A.erase(unique(set_A.begin(), set_A.end()), set_A.end());
    	vector<int>::iterator iter_A = set_A.begin();
    	cout << "合并后A中的实际元素为:";
    	while (iter_A != set_A.end())
    	{
    		cout << *iter_A << " ";
    		iter_A++;
    	}
    
    	cout << endl;
    	system("pause");
    	return 0;
    }
    

    注意,中间erase里的unique使用,得要先对vector进行排序,否则不会进行所有的去重(即只对相邻的重复进行去重)

    进一步体会了STL的使用对于基本算法和数据结构实现的方便性。

  • 相关阅读:
    Socket send函数和recv函数详解
    isdigit()函数用法
    C语言的那些小秘密之字节对齐
    The Five Best Linux BitTorrent Clients
    怎么计算网站高峰期并发量和所需的带宽?
    软件需求包括3个不同的层次 业务需求、用户需求和功能需求
    右键删除选中的行总提示rowIndex
    SQL Server[转]SQL Server中临时表与表变量的区别
    面向对象的软件工程应用浅研
    OO开发思想:面向对象的开发方法(Object oriented,OO)
  • 原文地址:https://www.cnblogs.com/sbhyc/p/8976838.html
Copyright © 2020-2023  润新知