编写程序,建立整型向量容器,从键盘上输入若干正整数,添加在向量容器尾部,输出向量容器内所有元素,再将向量容器内所有素数拷贝至整型双端队列容器内,再输出整型双端队列容器内所有元素,要求使用lambda函数。 输入格式: 第一行输入整数数量n; 第二行输入n个整数; 输出格式: 第一行输出所有整数;(空格隔开,最后一个数后也有空格) 第二行输出所有素数;(空格隔开,最后一个数后也有空格)
时间: 2024-03-08 14:47:46 浏览: 101
以下是C++代码实现:
```cpp
#include <iostream>
#include <vector>
#include <deque>
#include <algorithm>
using namespace std;
bool is_prime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
cin >> n;
vector<int> num_vec;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
num_vec.push_back(num);
}
for_each(num_vec.begin(), num_vec.end(), [](int num) {
cout << num << " ";
});
cout << endl;
deque<int> prime_deque;
copy_if(num_vec.begin(), num_vec.end(), back_inserter(prime_deque), [](int num) {
return is_prime(num);
});
for_each(prime_deque.begin(), prime_deque.end(), [](int num) {
cout << num << " ";
});
cout << endl;
return 0;
}
```
首先使用整型向量容器存储输入的整数。然后使用 `for_each` STL 算法输出向量容器内所有元素。使用 `copy_if` STL 算法将向量容器内所有素数拷贝至整型双端队列容器内。最后使用 `for_each` STL 算法输出整型双端队列容器内所有元素。其中 `is_prime` 函数用于判断一个数是否是素数。lambda 函数用于实现条件判断和输出操作。
阅读全文