c++11 lambda 我想求10个随机数的平方和 中间那一点不会写的 怎么写呢
#include <bits/stdc++.h>
using namespace std;
void myPrintf(int val)
{
cout << val << " ";
}
int main()
{
int a[24];
vector<int> sourceVector;
sourceVector.resize(10);
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
{
a[i]=rand()%100;
sourceVector.push_back(a[i]);
}
// int res=0;
// generate(sourceVector.begin(), sourceVector.end(), [&res](int x) {
// res=x*x;
// return res;
// });
for_each(sourceVector.begin(), sourceVector.end(), myPrintf);
cout << endl;
}
遍历每次平方加到res里,之后输出
#include <bits/stdc++.h>
using namespace std;
void myPrintf(int val)
{
cout << val << " ";
}
int main()
{
int a[24];
vector<int> sourceVector;
sourceVector.resize(10);
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
{
a[i]=rand()%100;
sourceVector.push_back(a[i]);
}
int res=0;
vector<int>::iterator i1;
for (i1 = sourceVector.begin(); i1 != sourceVector.end(); ++i1) {
res+=*i1**i1;
}
cout<<res<<endl;
for_each(sourceVector.begin(), sourceVector.end(), myPrintf);
cout << endl;
}
有些编译器不支持lambda表达式的,你需要先搜索一下你的编译器是否支持,否则会一直报错,使用lambda表达式的写法如下:
//在一个vector容器sourceVec中加入10个随机整数;
//设计一个名为squareTrans的仿函数,利用transform算法将10个数的平方搬运到目标容器targetVec中;
//再设计一个仿函数display,利用for_each算法将targetVec中的10个数输出到屏幕上。
//#include<bits/stdc++.h>
#include <iostream>
#include <time.h>
#include <vector>
#include <algorithm>
using namespace std;
void myPrintf(int val)
{
cout << val << " ";
}
int main()
{
int a[24];
vector<int> sourceVector;
//sourceVector.resize(10);
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
{
a[i]=rand()%100;
sourceVector.push_back(a[i]);
}
for_each(sourceVector.begin(),sourceVector.end(),myPrintf);
transform(sourceVector.begin(),sourceVector.end(),sourceVector.begin(),[](int i){ return i*i;});
for_each(sourceVector.begin(),sourceVector.end(),myPrintf);//这个语句没有发挥它的作用捏
}
可以这样写
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int main()
{
int sum;
for(int i=1;i<=10;i++)
{
int a=rand();
sum+=a*a;
}
printf("%d \n",i,sum);
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!