如何通过传递其值从C ++中删除Set中的元素
给定一个Set,在C ++中删除此Set的最后一个元素。
例子:
输入值: set = [10 20 30 70 80 90 100 40 50 60],
valueOfElementToBeDeleted = 100
输出值: 10 20 30 40 50 60 70 80 90
输入值: set = [1 2 3 4 5],
valueOfElementToBeDeleted = 3
输出值: 1 2 4 5
集合(Set)是一种关联容器类型,其中每个元素都必须是唯一的,因为元素的值标识它。元素的值添加到Set之后无法修改,但是可以删除并添加该元素的修改值。
方法: 在此方法中,使用erase()函数并将其参数作为最后一个元素的值调用来删除最后一个元素。如果不知道最后一个元素的值,则使用上一种方法。
语法:
size_type erase (const value_type& valueOfElementToBeDeleted);
C++
以下是以上方法的实现:
// C++ program to delete an element
// of a Set by passing its value
#include <iostream>
#include <set>
using namespace std;
// Function to print the set
void printSet(set<int> myset)
{
// Get the iterator
set<int>::iterator it;
// printing all the elements of the set
for (it = myset.begin(); it != myset.end(); ++it)
cout << ' ' << *it;
cout << '\n';
}
// Function to delete the element of set
void deleteByValue(set<int> myset,
int valueOfElementToBeDeleted)
{
// printing all the elements of the set
cout << "\nSet originally: ";
printSet(myset);
// Erase the element that is equal to
// the value passed as the parameter
myset.erase(valueOfElementToBeDeleted);
// printing all the elements of the set
cout << "Set after deleting "
<< valueOfElementToBeDeleted
<< ": ";
printSet(myset);
}
// Driver code
int main()
{
set<int> myset;
// Get the set
for (int i = 1; i < 10; i++)
myset.insert(i * 10);
// Get the valueOfElementToBeDeleted
int valueOfElementToBeDeleted = 50;
// Delete an element from the Set
deleteByValue(myset, valueOfElementToBeDeleted);
return 0;
}
C++
//Java程序,通过传递其值删除集合中的元素
import java.io.*;
import java.util.*;
class GFG
{
//打印集合
static void printSet(TreeSet<Integer> myset)
{
//打印集合的所有元素
for(int it : myset)
{
System.out.print(it + " ");
}
System.out.println();
}
//删除集合的元素
static void deleteByValue(TreeSet<Integer> myset,
int valueOfElementToBeDeleted)
{
//打印原始集合
System.out.print("\n原集合:");
printSet(myset);
//删除与传递的值相等的元素
myset.remove(valueOfElementToBeDeleted);
//打印删除元素后的集合
System.out.print("删除 " +
valueOfElementToBeDeleted + " 后的集合:");
printSet(myset);
}
//主函数
public static void main (String[] args)
{
//Set<Integer> myset = new HashSet<Integer>();
TreeSet<Integer> myset = new TreeSet<Integer>();
//获取集合
for (int i = 1; i < 10; i++)
{
myset.add(i * 10);
}
//获取要删除的元素的值
int valueOfElementToBeDeleted = 50;
//从集合中删除元素
deleteByValue(myset, valueOfElementToBeDeleted);
}
}
//avantitrachhadiya2155贡献的代码
C++
# Python3程序,通过传递值删除集合中的元素
#函数打印集合中的所有元素
def printset(myset):
for i in myset:
print(i, end = " ")
print()
#函数删除集合中的元素
def deleteByValue(myset, value):
myset = sorted(myset)
#打印原始集合值
print("原集合:", end = " ")
printset(myset)
#删除与传递的值相等的元素
myset.remove(value)
#打印删除元素后的集合
print("删除", value, "后的集合:", end = " ")
printset(myset)
#主函数
myset = set()
for i in range(1, 10):
myset.add(i * 10)
#获取要删除的元素的值
value = 50
#从集合中删除元素
deleteByValue(myset, value);
#Mohit Kumar 29的贡献
C++
// C#程序删除Set中某个元素
// 通过传递它的值
using System;
using System.Collections.Generic;
public class GFG
{
// 打印Set的函数
static void printSet(HashSet<int> myset)
{
// 打印Set的所有元素
foreach(int it in myset)
{
Console.Write(it + " ");
}
Console.WriteLine();
}
// 从set中删除元素的函数
static void deleteByValue(HashSet<int> myset, int valueOfElementToBeDeleted)
{
// 打印Set的所有元素
Console.Write("\nSet originally: ");
printSet(myset);
// 删除等于传递的参数值的元素
myset.Remove(valueOfElementToBeDeleted);
// 打印Set的所有元素
Console.Write("Set after deleting " + valueOfElementToBeDeleted + ": ");
printSet(myset);
}
// 主函数
static public void Main ()
{
//Set<Integer> myset = new HashSet<Integer>();
HashSet<int> myset = new HashSet<int>();
// 获取Set
for (int i = 1; i < 10; i++)
{
myset.Add(i * 10);
}
// 获取要删除的元素的值
int valueOfElementToBeDeleted = 50;
// 从Set中删除一个元素
deleteByValue(myset, valueOfElementToBeDeleted);
}
}
// 该代码由rag2127贡献
C++
<script>
// JavaScript程序删除Set中某个元素
// 通过传递它的值
// 打印Set的函数
function printSet(myset)
{
// 打印Set的所有元素
for(let it of myset.values())
{
document.write(it + " ");
}
document.write("<br>");
}
// 从set中删除元素的函数
function deleteByValue(myset, valueOfElementToBeDeleted)
{
// 打印Set的所有元素
document.write("<br>Set originally: ");
printSet(myset);
// 删除等于传递的参数值的元素
myset.delete(valueOfElementToBeDeleted);
// 打印Set的所有元素
document.write("Set after deleting " +
valueOfElementToBeDeleted + ": ");
printSet(myset);
}
// 主函数
//Set<Integer> myset = new HashSet<Integer>();
let myset = new Set();
// 获取Set
for (let i = 1; i < 10; i++)
{
myset.add(i * 10);
}
// 获取要删除的元素的值
let valueOfElementToBeDeleted = 50;
// 从Set中删除一个元素
deleteByValue(myset, valueOfElementToBeDeleted);
// 该代码由patel2127贡献
</script>
C++
输出:
Set originally: 10 20 30 40 50 60 70 80 90
Set after deleting 50: 10 20 30 40 60 70 80 90
C++