分别对一个 vector、list、map 容器有 100001-10000个数编程实现移出其中的偶数 用c++
以下是使用C++编程实现移出容器中的偶数的示例代码:
#include <iostream>
#include <vector>
#include <list>
#include <map>
// 移出vector中的偶数
void removeEvenNumbers(std::vector<int>& vec) {
vec.erase(std::remove_if(vec.begin(), vec.end(), [](int num) { return num % 2 == 0; }), vec.end());
}
// 移出list中的偶数
void removeEvenNumbers(std::list<int>& lst) {
lst.remove_if([](int num) { return num % 2 == 0; });
}
// 移出map中的偶数
void removeEvenNumbers(std::map<int, int>& mp) {
for (auto it = mp.begin(); it != mp.end();) {
if (it->second % 2 == 0) {
it = mp.erase(it);
} else {
++it;
}
}
}
int main() {
// 创建vector并填充数据
std::vector<int> vec;
for (int i = 1; i <= 10000; ++i) {
vec.push_back(i);
}
// 移出vector中的偶数
removeEvenNumbers(vec);
std::cout << "Vector size after removing even numbers: " << vec.size() << std::endl;
// 创建list并填充数据
std::list<int> lst;
for (int i = 1; i <= 10000; ++i) {
lst.push_back(i);
}
// 移出list中的偶数
removeEvenNumbers(lst);
std::cout << "List size after removing even numbers: " << lst.size() << std::endl;
// 创建map并填充数据
std::map<int, int> mp;
for (int i = 1; i <= 10000; ++i) {
mp[i] = i;
}
// 移出map中的偶数
removeEvenNumbers(mp);
std::cout << "Map size after removing even numbers: " << mp.size() << std::endl;
return 0;
}
这段代码首先创建了一个包含1到10000的整数的vector、list和map容器。然后,我们定义了三个函数removeEvenNumbers来移出容器中的偶数。对于vector和list容器,我们使用了容器自带的erase和remove_if函数来移除偶数。对于map容器,我们使用迭代器遍历map,并通过判断值的奇偶性来决定是否移除该元素。
最后,我们在main函数中分别调用了这三个函数,并输出移除偶数后容器的大小
原文地址: https://www.cveoy.top/t/topic/iyHk 著作权归作者所有。请勿转载和采集!