- 1.auto类型:
——auto的原理就是根据后面的值,来自己推测前面的类型是什么。
auto的作用就是为了简化变量初始化,如果这个变量有一个很长很长的初始化类型,就可以用auto代替。(你可以不用定义这个数据是int还是double什么的,直接在前面写一个auto就可以 )
auto i =10;//此时auto代替了int
ps:auto声明的变量必须初始化
-
2.getline函数
——虽然我才刚学到这个函数,但是我光是想想就知道这个函数的作用有多大,可以有多方便。它的作用就是读取你输入的一整行。和cin相比,它可以读取空格!!!cin的话遇到空格就会停止,空格之后的东西就不读了,而getline就不一样了,只要在这一行上,你输啥它读啥!getline(cin,string_neme)
括号里面首先输一个cin,然后再输储存该字符串的string类型的名字,中间逗号隔开
-
3.string中的size操作
——size的作用也很直观就是看这个字符串的长度string line="hello world!" cout<<line.size()<<endl;
结果是12。由此可见size的格式也很简单,只要用点操作符指明是哪一个操作对象就行
-
4.可以遍历字符串的范围for语句(中间冒号隔开)
——和一般的for语句不同,他的格式也不尽相同,至少很好用string line"hello"; for(auto c:line) cout<<c<<endl;//把每一个元素单独成行的打印出来
用此句作为例子,已知了字符串line,在for语句中首先定义了一个auto变量c(当然也可以是其他变量,不过要与字符串中的元素的类型相同),然后进行的操作就是把字符串中的元素赋值给了这个变量c,每一次迭代都会把下一个元素的值赋给c,然后循环体中就可以对c来操作,这些操作也都只是对c,不会对字符串本身造成什么改变。
string line“hello”;
for(auto &c:line)//这里定义的是引用,所以会对字符串本身造成影响
c=toupper(c);
cout<<line<<endl;//把字符串每一个元素改为大写
这个例子又不一样了,它改变了字符串本身,通过定义引用。
6.c++ primer 84页:要是只处理一部分该怎么做(懒得写了,到时候自己看)