第一章
1、作用域解析运算符 ::用来指示这些定义的位置。
2、条件表达式运算符
( condition ? value1 : value2 )
如果condition 为真,则它的值为value1,否则为value2。
Ps:在C语言中我们知道a >b ? a : b三目运算符,跟他一样,今天才知道a>b是个条件语句,后面的值是根据前面的真假来得出的,以前以为是真的比较ab的大小呢。
3、C++中的运算符优先级一览表
1 |
:: |
2 |
.、->、[]、()、++(后增量)、--(后减量)、typeid、 dynamic_const、static_cast、reinterpret_cast、const_cast |
3 |
~、!、+、-(一元)、++(前增量)、--(前减量)、new、 delete、&(引用)、*(解引用)、sizeof |
4 |
.*、->* |
5 |
*(乘)、/、% |
6 |
+、-(二元) |
7 |
<<、>> |
8 |
<、>、<=、>= |
9 |
==、!= |
10 |
&(位“与”) |
11 |
^(位“异或”) |
12 |
|(位“或”) |
13 |
&& |
14 |
|| |
15 |
=、+=、-=、*=、/=、%=、<<=、>>=、&=、|=、^= |
16 |
?: |
17 |
throw |
18 |
, |
PS:自我感觉这个很有用,当初学习C语言的时候都没学好,现在在C++中再次遇到他,还是要复习。
4、length()和substr()函数的作用
例如:
strings=”ABCDEFGH”;
s.length()=8;
s.substr(2,4)=”CDEF”
5、PS:C++中string字符串很强大,直接可以用比较运算符比较两个字符串的大小,根据的是26字母的前后位置而定,还有,字符串还可以直接进行“+”,很强大哦。
6、查找子串
例如:
const string str=”Mississippi”;
const string substr=”issi”;
str.find(substr)= 1
str.find(substr,2)=4
str.find(substr,8)=4294967295
UINI_MAX = 4294967295
调用第一个返回子串substr 在str 中的第1个起始位置。
调用第二个返回子串substr 在str 中的前2个字符串之后的第一个起始位置。
调用第二个返回一个较大的整数(UINI_MAX),指示在前8个字符之后未找到子串。
注意:unsigned int 常量 UINI_MAX定义在<limits>头文件中,必须在程序中包含它。
7、文件
#include<iostream>
using namespace std;
#include<ctype.h>
#include<fstream>
int main()
{
ifstreaminfile("input.txt");
ofstreamoutfile("output.txt");
stringline;
while(getline(infile,line))
{
for(inti=0;i<line.length();i++)
if(i==0||line[i-1]==''&&isalpha(line[i]))
line[i]=toupper(line[i]);
outfile<<line<<endl;
}
}
PS:感觉这个函数写的比较好,以后写项目可以做一个模板啦。
2015年3月26日19:48:34
第二章
1、符号&被称为引用运算符。在把它用作变量或对象的名称x的前缀时,得到的表达式&x将求值为x的内存地址。因此,&也称为运算符“的地址”。
2、符号*被称为解引用运算符。当把它用作指针的名称p的前缀时,得到的表达式*p将求值为p指向的变量或对象的值。
3、PS:C++中的string类,真的很厉害,今天又看到这样的方法对string对象的赋值方法:
stringname(“Erika”);这不就是在对一个对象的赋值吗。通过类的构造函数函数赋值,并且这个构造函数还是一个形参的构造函数。
4、尝试解引用空指针
#include<iostream>
using namespace std;
int main()
{
string*p;
if(1)
{
stringname("Erika");
p=&name;
cout<<"Nowp points to :"<<*p<<endl;
}
cout<<"Nowp points to :"<<*p<<endl;
return0;
}
PS:如代码,我们看到了一段代码,我的第一反应是两个输出语句都是输出Erika啊,可是只有第一个正确输出了,第二个没有输出,原来是作用域不同。这让我联想起来了C语言中的变量的作用域了,这里也可以那样解释,只不过是变量变成了类的对象。