C++ Primer学习笔记

第一章
cin是iostream标准输入流的一个对象
cout是ostream标准输出流的一个对象
cerr是标准错误
clog是一般信息输出
cin>>a将输入流中对象赋值给a
cout<<A将a复制给cout,随标准输出流输出
注释符号
//行注释
/*
*/段落注视
几种简单面向过程的结构
选择结构
if
else
swich(){
case :语句1;break;


}
循环结构
while(循环满足的条件){
}
无限输入
while(cin>>v1){

for(定义循环变量初始化;循环条件;循环变量改变){
}
第二章
(一)
1)类型的转换
将int转换成boolean型,对于非0的int赋值给布尔型布尔型变量相当于true,对于0的int赋值给布尔型变量相当于false
将布尔型变量赋值给int型,对于true而言相当于int型的1,对于false而言相当于int0
对于将浮点型的变量转换成int型取整,相反加0
2)对于字面型常量而言,包括整型,字符型,浮点型
对于整型  十进制整型有符号  八进制整型形如067  十六进制整型形如0x44d
对于浮点型而言默认的类型是double
包括十进制小树和3.142e12
字符型和字符串型字面值
‘a’字符型  “a”字符串型包括‘\0’字符
转义序列
对于不可打印类的字符通过转义来表示形如‘\n’表示换行
‘\t'表示制表
(二)
变量的初始化
int a=1;
int a={1};
对于函数外的内置型变量,默认的初始值为0
函数内不出史话
声明和定义之间的联系
声明说明变量的类型和变量名
定义说明类型变量名同时也要赋值初始化
标识符由下划线和字母开头一连串字符
常量一般小写,类首字母大写对于多个单词需用下划线分割
声明在main()以外的变量的作用域是全文件
声明在函数内或者函数语句内的变量的作用域从定义到函数结束为止
(三)复合类型
1)引用
int a=10;
int &a1=a;
引用不能赋值
、无引用的引用
2)指针
int ew=2;
int *p=&ew;
int **pp1=&p;
(四)const
1)
const int a=1;
所有关于改变a值得操作都是不被允许的
如要似的莫一个常量能在任意一个文件中使用
entern const int a=1;
entern const int a
2)const的引用
const int &a=a1;
a1可以是常量也可以是非常量对象
3)const指针
const int *p=&p1;
p1需要为int 常量底层const
int *const p=&p2;
p是一个常量指针且,p2需要为int顶层const
(五)类型别名
typedef char* sm;
const sm a=&a1;指向a1的常指针
2)auto类型说明符
auto a=100;
通过编译器通过初始值类型来得到a的类型
auto会自动忽略掉顶层const因此无常指针
如要表示常指针,const auto
3)decltype()
返回变量的类型
若r是一个引用decltype(r)返回值是int &
若为decltype(r+0)返回值类型为int
第三章
一。string
1)string引入,#include<string>;
2)string 的对象的初始化
string str1=str2;
string str1=“dhni”
string str2(6,‘x’);
3)string 的操作
注意cin仅仅会输入从一个空白到另一个空白的字符串对象
读取未知数量的字符串
while(cin>>word)
cout<<word;
读取一正行字符串
while(getline(cin,word))
cout<<word;
empty()
判断是否为空字符串
通过decltype(s。size())定义index类型
字典比较规则
1)如果两个字符串长度不同,但短的字符串和长的字符串前半段相同,则s1<s2;
2)如果两个字符串不同,从第一个不同的地方开始比较两个字符的大小
string对象相加s1+s2
字面型字符与string对象相加
+两侧至少有一个string对象
对于字符串中任意字符的处理
需要引入c++标准库中的cctype文件
对于字符串进行遍历
for(auto cL:s){


}
仅仅处理部分字符通过索引
、for(int index=0;index《是,size()&&条件;index++)
(二)
vector类的使用首先包含其文件
#include <vector>;

关于定义和初始化vector对象、
vector<string> vec1;
vector<string>vec2{"fhu","fdo"};
vector<string>vect3(10);
向vector中加元素
string str1;
vec1.put-back(str1);
对于已知添加对象个数的容器添加
for(int i0;i<n;i++){
vec1.put_pack(DUXIANG);
}
对于未知个数对象的添加
while(cin》》word){
vec1.put_pack(word)
}
对于容器中任意一个对象的处理
for(auto &c:vec1){
做处理
}
for(auto c:vec1)
cout《《c《《endl;
(四)关于c++迭代器
1)每一个容器对象都对应于一个迭代器
容器对象调用begin()可以得到初始的迭代器
调用end()可以得到为后迭代器
形如
vector《string》 vec1;
auto c=vec1.begin()
判断两迭代器相等的依据
1)c1与c2迭代器所指的对象是同一个
2)同指向相同容器对象的为后迭代器
迭代器的运算
*c1获得c1迭代器所指的对象
利用迭代器遍历
型如将string所有字母变成大写字母
string str(“vudfj”);
for(auto c=vec1.begin();c!=vec1.end()&&所需要的附加条件;c++){
}
迭代器的类型是iterator
铜鼓哦容器对象来调用cbegin()或者cend()所得到的对象的类型均为const_iterator
(五)对于数组
第六章  函数
6.3省略福形参
作为声明而言返回值的类型 函数名 形参类型
当形参类型为省略福的时候表示还有部分类型的形参对象,实参与形参结合的过程中不会出现类型检查

2)return语句
第八章 IO
在IO库中包括三个头文件
iostream fstream、sstream头文件
对于iostream问价中包含istream和ostream类型可以定义其流对象,
istream表示从流中读取数据
ostream表示从流中写入数据
对于fstream都文件中存在 ifstream类和ofstream类
ifstream表示从文件中读取数据
ofstream表示从文件中写入数据
对于sstream头文件中存在isstream类和osstream类
isstream表示从string类中读取数据
osstream表示从string中写入数据
     
ifstream和isstringstream同继承于istream类中,可以定义其对象从而》》或者《《作用福从文件或者string中读写数据
IO对象不能拷贝与赋值
endl的作用换行并且刷新缓冲区
flush刷新缓存区
ends作用插入空子符,并刷新缓存去
cout<<UNITBUF
表示之后的输出均刷新缓存区
cout《《NOUNITBUF
表示回复正常的缓冲模式】】
对于一个输入流对象可以关联一个输出流对象
通过tie()形如cin。tie(cout&)当从输入流中读取数据的时候,必然会导致刷新输出流的缓冲区














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值