详细介绍 c++ 的 set erase 和 map erase
时间: 2023-05-22 21:06:43 浏览: 314
set erase和map erase函数均是删除STL容器中数据的函数。它们的主要区别在于传递参数的方式和返回值类型。set erase函数要求传递一个迭代器参数,并且返回被删除元素的数量,而map erase函数则要求传递一个键参数,并且返回被删除元素的数量。
对于set erase函数,它的参数可以是一个迭代器,也可以是一对迭代器之间的范围。该函数删除容器中所有等于指定值的元素,并且返回被删除的元素数量。
对于map erase函数,它要求传递一个键参数,该键必须在map容器中存在。如果存在,该函数将删除该键及其关联的值,并返回被删除的元素数量。如果不存在,则不执行任何操作。
在使用erase函数时需要小心,因为它会影响迭代器的有效性,可能导致程序崩溃,还可能影响其他部分的代码。因此,我们在使用这些函数时需要谨慎操作。
相关问题
详细介绍 c++ 的 set erase 和 map erase 具体的使用方法
当在C++中使用 set erase 和 map erase 函数时,需要注意以下几点:
1. set erase:
set 是一种 STL 中的容器,它用于存储不同的值,并按升序进行排序。set 中的值是唯一的,即每个值只存在一个。set erase 用于删除 set 中的一个或多个元素。它有以下两种重载方式:
a) iterator erase (const_iterator position): 用于删除迭代器 position 指向的元素,返回一个指向被删除元素之后的迭代器。
b) size_type erase (const value_type& val): 用于删除值为 val 的元素,返回被删除元素的个数。
举个例子:
set<int> mySet;
mySet.insert(1);
mySet.insert(2);
mySet.insert(3);
mySet.erase(2);
此时 mySet 中的元素为 1 和 3。
2. map erase:
map 是一种 STL 中的容器,它用于存储键值对。map 中的键是唯一的,即每个键只存在一个。map erase 用于删除 map 中的一个或多个键值对。它有以下两种重载方式:
a) iterator erase (const_iterator position): 用于删除迭代器 position 指向的键值对,返回一个指向被删除键值对之后的迭代器。
b) size_type erase (const key_type& k): 用于删除键为 k 的键值对,返回被删除键值对的个数。
举个例子:
map<int, int> myMap;
myMap.insert({1, 10});
myMap.insert({2, 20});
myMap.insert({3, 30});
myMap.erase(2);
此时 myMap 中的键值对为 {1, 10} 和 {3, 30}。
希望能够帮助到您,如果有其它问题,请随时提出。
c++ set map
引用中的代码展示了如何使用set容器,其中set是一个有序且唯一的容器。在引用中,首先定义了一个set容器s并初始化了一些元素,然后使用迭代器pos查找并删除了值为20的元素,最后使用for循环遍历并输出set容器中的所有元素。
引用中的代码展示了使用set容器的更多操作。在引用中,首先定义了一个set容器s并初始化了一些元素,然后使用erase函数尝试删除一个不存在的元素30,接着使用迭代器pos查找并删除了值为20的元素,最后再次使用for循环遍历并输出set容器中的所有元素。
引用中的代码也展示了如何使用set容器。在引用中,定义了一个test_set1函数,其中初始化了一些元素并将它们插入到set容器s中,然后使用for循环遍历并输出set容器中的所有元素。在main函数中调用了test_set1函数。
综上所述,c++中的set是一个有序且唯一的容器,其中的元素以升序排列,并且不允许重复。set容器提供了插入、删除、查找等操作,并且遍历时按照元素升序的顺序输出。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [【C++】set和map](https://blog.csdn.net/m0_62179366/article/details/127715195)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文