C++提高——STL中常用的集合算法

  • set_union: 构造一个有序序列,包含两个有序序列的并集。
  • set_intersection: 构造一个有序序列,包含两个有序序列的交集。
  • set_difference: 构造一个有序序列,该序列保留第一个有序序列中存在而第二个有序序列中不存在的元素。
	vector<int> vecIntA;
	vecIntA.push_back(1);
	vecIntA.push_back(3);
	vecIntA.push_back(5);
	vecIntA.push_back(7);
	vecIntA.push_back(9);

	vector<int> vecIntB;
	vecIntB.push_back(1);
	vecIntB.push_back(3);
	vecIntB.push_back(5);
	vecIntB.push_back(6);
	vecIntB.push_back(8);

	vector<int> vecIntC;
	vecIntC.resize(10);

	//并集
	set_union(vecIntA.begin(), vecIntA.end(), vecIntB.begin(), vecIntB.end(), 
	vecIntC.begin());		//vecIntC : {1,3,5,6,7,8,9,0,0,0}

	//交集
	fill(vecIntC.begin(),vecIntC.end(),0);
	set_intersection(vecIntA.begin(), vecIntA.end(), vecIntB.begin(), vecIntB.end(), 
	vecIntC.begin());		
	//vecIntC: {1,3,5,0,0,0,0,0,0,0}

	//差集
	fill(vecIntC.begin(),vecIntC.end(),0);
	set_difference(vecIntA.begin(), vecIntA.end(), vecIntB.begin(), vecIntB.end(), 
	vecIntC.begin());			
	//vecIntC: {7,9,0,0,0,0,0,0,0,0}

你可能感兴趣的:(C++)