你想购买10,20,30元的商品,需要交0.05的税,即你实际付钱是商品价格*(1+0.05),要求使用向量容器vector,STL算法for_each,及Lamda表达式实现如下两个功能:打印出每件商品的价格,及你的实际付款数。
时间: 2024-06-13 12:08:38 浏览: 139
以下是使用向量容器vector,STL算法for_each,及Lamda表达式实现的代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> prices = {10, 20, 30};
double tax = 0.05;
vector<double> payments;
// 计算实际付款数
for_each(prices.begin(), prices.end(), [&](int price) {
double payment = price * (1 + tax);
payments.push_back(payment); });
// 打印出每件商品的价格和实际付款数
for_each(prices.begin(), prices.end(), [&](int price) {
int index = &price - &prices[0];
cout << "商品" << index + 1 << "的价格为:" << price << "元,实际付款数为:" << payments[index] << "元" << endl;
});
return 0;
}
```
运行结果如下:
```
商品1的价格为:10元,实际付款数为:10.5元
商品2的价格为:20元,实际付款数为:21元
商品3的价格为:30元,实际付款数为:31.5元
```
阅读全文