homework-09
2013-11-25 14:03 adun_li 阅读(131) 评论(0) 编辑 收藏 举报这次作业主要考察C++11的简单用法,个人感觉这样的练习对我这种编程能力比较差的非常有用,加深了对C++11的理解。
Lambda的用法
计算“Hello World!”中
a.字母‘e’的个数
b. 字母‘l’的个数
代码如下:
1 #include<iostream> 2 #include<cstring> 3 #include<string> 4 #include<memory> 5 #include<algorithm> 6 7 using namespace std; 8 9 int main() 10 { 11 string s = "Hello World!"; 12 int a = 0,b = 0; 13 for_each(s.begin(),s.end(),[&a,&b](char c){ 14 if (c == 'l') a++; 15 else if (c == 'e') b++; 16 }); 17 cout<<"The number of l is "<< a <<endl; 18 cout<<"The number of e is "<< b <<endl; 19 return 0; 20 }
练习使用智能指针
打印“Hello World!”循环右移n位的结果
代码如下:
1 #include<iostream> 2 #include<cstring> 3 #include<string> 4 #include<memory> 5 6 using namespace std; 7 8 void main(){ 9 int n,i = 0,j; 10 string s = "Hello World!"; 11 cin >> n; 12 auto sp1 = std::make_shared<string>(s); 13 auto sp2 = std::make_shared<string>(s); 14 while (i < 12) 15 { 16 j = (i + n) % 12; 17 (*sp2)[j] = (*sp1)[i++]; 18 } 19 sp1.reset(); 20 cout << *sp2; 21 system("pause"); 22 return 0; 23 24 }