【现代程序设计】homework-09
1. 了解Lambda的用法
计算“Hello World!”中
a.字母‘e’的个数
b. 字母‘l’的个数
首先:
ISO C++ 标准的另一大亮点是引入Lambda表达式。语法如下:
[](形参列表)->返回值类型{函数体}
例如调用<algorithm>中的std::sort,ISO C++ 的写法是要先写一个compare函数: bool compare(int & a, int & b)
{
return a > b; // 降序排序
}
然后,再这样调用: sort(a, a+n, compare);
然而,用ISO C++ 标准新增的Lambda表达式,可以这么写: sort( a, a+n, [](int & a, int & b)->bool{return a > b;} ); // 降序排序
这样一来,代码明显简洁多了
针对该题,代码如下:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <memory>
#include<algorithm>
using namespace std; int main()
{
string str;
cin>>str;
int c1=count_if(str.begin(),str.end(),[](char tmp)->bool{return tmp == 'e';});
int c2=count_if(str.begin(),str.end(),[](char tmp)->bool{return tmp == 'l';});
cout<<"e的数量: "<<c1<<"l的数量: "<<c2<<endl;
return ;
}
2. 练习使用智能指针
打印“Hello World!”循环右移n位的结果
Example:
n = 1, output = “!Hello World”
n = 3, output = “ld!Hello Wor”
#include "stdafx.h"
#include <iostream>
#include <string>
#include <memory>
using namespace std;
unique_ptr<string > move ( string str,int n);
int main( )
{
int n;
cin>>n;
string str;
cin>>str;
move (str , n);
return ;
}
unique_ptr<string > move ( string str,int n){ unique_ptr<string>tmp(new string(str));
int length=str.length();
for(int i=;i<n;i++)
{
char ch=(*tmp)[length-];
for(int j=length-;j>;j--)
{
(*tmp)[j]=(*tmp)[j-];
}
(*tmp)[]=ch;
}
cout<<*tmp<<endl;
return tmp;
}
【现代程序设计】homework-09的更多相关文章
- 现代程序设计homework——04
题目: 详见:http://www.cnblogs.com/xinz/p/3341551.html 题目本身确实很难,“很难想到一个比较优雅的算法”,这是一个老师请来专门讲解这道题的大牛的原话.确实, ...
- 软工+C(9): 助教指南,持续更新...
上一篇:提问与回复 下一篇:从命令行开始逐步培养编程能力(Java) 目录: ** 0x00 Handshake ** 0x01 点评 ** 0x02 评分 ** 0x03 知识储备 ** 0x04 ...
- 分享一套C++入门基础视频
本课程从C++起步.用户无需不论什么计算机基础,仅仅须要懂的主要的电脑操作,既可学习本课程.本课程适合在校大学生,在职人员等,通过本课程的学习,学员可掌握C++\MFC\VC++server端.网络编 ...
- Windows7WithSP1/TeamFoundationServer2012update4/SQLServer2012
[Info @09:03:33.737] ====================================================================[Info @ ...
- 2045331 《Java程序设计》第09周学习总结
2045331 <Java程序设计>第09周学习总结 教材学习内容总结 第十六章 整合数据库 16.1.1JDBC简介 1.JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接 ...
- 20145219 《Java程序设计》第09周学习总结
20145219 <Java程序设计>第09周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与接口,应用程序需要联机 ...
- 09 高效的PL/SQL程序设计
程序包 Package 断开了依赖链 实验依赖关系: <1> 首先不使用包 -- 创建表 CREATE table t (x int); -- 创建视图 create view v as ...
- 20145210 《Java程序设计》第09周学习总结
教材学习内容总结 第十六章 整合数据库 •JDBC(Java DataBase Connectivity) •JDBC是用于执行SQL的解决方案 •JDBC全名Java DataBase Connec ...
- 《c程序设计语言》读书笔记-字符型0-9转为数字0-9
#include <stdio.h> #define Num 10 int atoi(char s[]); int main() { int c,i = 0; char s[Num]; i ...
- 团体程序设计天梯赛L2-023 图着色问题 2017-04-17 09:28 269人阅读 评论(0) 收藏
L2-023. 图着色问题 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 图着色问题是一个著名的NP完全问题.给定无向图 G ...
随机推荐
- innerText在谷歌、火狐浏览器下的使用
使用innerHTML.replace(/<.+?>/gim,'')代替innerText,简单正则替换一下
- Linux下安装php screw
1.下载地址:http://sourceforge.net/projects/php-screw/ 2. tar zxvf php_screw_1.5.tar.gz cd php_screw_1.5 ...
- 使用注解实现IOC
在biz业务处理类实现类中 /** * 用户业务类,实现对User功能的业务管理 */ @Service("userBiz") public class UserBiz imple ...
- NodeJs教程(介绍总结!)终于在网上找到一个靠谱点的了T_T
本人吐槽!本人是学渣,然后网上关于nodeJS的大多都是坑,简直让人要奔溃了.若非最近总是被要求要nodeJS,坚决不会去碰的...天生对cmd命令觉得无比的高大上,尽管一直在用git版本控制器!然后 ...
- javascript,css延迟加载器
/** * js/css LazyLoad * * 变量hash记录已经加载过的资源,避免重复加载 * * Z.loadScript('a.js', function() { ... }) * * Z ...
- HDOJ 1907 John
对于任意一个 Anti-SG 游戏,如果我们规定当局面中所有的单一游戏的 SG 值为 0 时,游戏结束,则先手必胜当且仅当: (1)游戏的 SG 函数不为 0 且游戏中某个单一游戏的 SG 函数大于 ...
- Unity3d Static 静态批处理和动态批处理
表示物体时静态的,多用于静止不动的物体,此外static有多种,有的用于烘焙,有的用于遮挡剔除 物理效果是rigidbody组件,和这个没关系,用transform.Translate 无法移动,因为 ...
- Autolayout及VFL经验分享
http://www.cocoachina.com/industry/20131108/7322.html 这篇不是什么教程.Cocoa autolayout出来蛮久了.以前多次想去深入研究一下,每次 ...
- Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning
原文 http://blog.csdn.net/abcjennifer/article/details/7758797 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...
- Sqli-LABS通关笔录-1
在第一个关卡当中还是学到些知识. 1.注释语句多试试其他的几个 2.不报错可能是前面的语句没有错误,union没有得到执行. http://127.0.0.1/sql/Less-1/index.php ...