C++primer读书笔记(一)
来源:互联网 发布:精灵软件下载 编辑:程序博客网 时间:2024/04/28 03:26
一、指针与引用
指针与引用看上去完全不同(指针用操作符’*’和’->’,引用使用操作符’.’),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在什么时候使用引用呢?
首先,要认识到在任何情况下都不能用指向空值的引用。一个引用必须总是指向某些对象。因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,因为这样你可以赋空值给该变量。相反,如果变量肯定指向一个对象,例如你的设计不允许变量为空,这时你就可以把变量声明为引用。
二、输入输出到文件
一段简单的代码,应该通俗易懂了
#include<iostream>#include<fstream>#include<string>using namespace std;int main(){ ofstream outfile;//创建一个ofstream对象来管理输出流 string wj;//文件名 cout<<"请输入文件名:"; cin>>wj; outfile.open(wj.c_str());//打开它,若没有便创建 if(!outfile)//验证是否打开成功 { cerr<<"打开失败!"<<endl; return -1; } cout<<"请输入要写入文件的内容:"<<endl; cin>>wj; outfile<<wj; outfile.close(); cout<<"请输入要打开文件的名称:"<<endl; cin>>wj; ifstream fin;//创建了一个ifstream的输入流 fin.open(wj.c_str());//打开它 if(!fin)//验证是否打开成功 { cerr<<"打开失败!"<<endl; return -1; } cout<<"打印出来的内容:"<<endl; char ch; while(fin.get(ch)) cout<<ch; cout<<endl; fin.close();//关闭输入流 return 0;}
文件的打开模式:out 打开文件做写的操作,删除文件中已经有的东西
in 打开文件做读的操作
一些组合:
out | app 打开文件做写的操作,在文件的尾写入
out | trunc 与out模式相投
in | out 打开文件做读、写的操作,并定位与文件的开头处
in | out | trunc 打开文件做读、写操作,删除文件中已经有的数据
三、容器
容器容纳特定类型对象的集合。
1、顺序容器
三种顺序容器,vector(支持快速随机访问),list(支持快速插入/删除),deque(双端队列)
三种顺序容器适配器,stack(后进先出栈),queue(先进先出队列),priority_queue(有优先级管理的队列)
vector容器的自增长,其中两个成员函数,capacity 函数获取在容器当前的容量 , reserve是告诉容器应该预留多少个存储空间。
然后关于容器适配器的话:
stack,后进先出的一个栈,他可以适用于以上三种顺序容器
queue,先进先出的队列,只能建立在list容器上
priority_queue ,有优先级的队列,要求提供随机访问的功能,于是也只能适用于 vector 和 deque 的容器上
2、关联容器
关联容器,通过键值(key)来存储和读取元素,而不是顺序容器中用位置俩读取元素
两种关联的类型,map,set
map: 键-值对应的形式,键只是在map中的索引,是一个关联数组
重要的类型:
map(k,v)::key_type 用作索引的键的类型
map(k,v)::mapped_type 键所关联的值的类型
map(k,v)::value_type 一个pair类型(表类型)
set: 仅仅包含一个键
multimap(不支持下表操作了) 与 multiset 两个类型,允许一个键值对应多个实例!
lower——bound(k)函数,返回一个迭代器,指向键值不小于K的第一个元素
upper_bound(k)函数,返回一个迭代器,指向键值大于K的第一个元素
equal_range(k)函数,返回存储在一对迭代器的pair对象。
- C++Primer读书笔记(一)
- C++primer读书笔记(一)
- C++Primer读书笔记(一)
- 《C++primer》读书笔记一
- 《C++Primer》读书笔记(一)开始
- 《C++primer》读书笔记一 类
- C++ primer 读书笔记(一)
- c++ primer读书笔记(一)
- C++Primer读书笔记(三)
- C++Primer读书笔记(四)
- C++Primer读书笔记(五)
- C++Primer读书笔记(六)
- C++Primer读书笔记(七)
- C++Primer读书笔记(八)
- C++Primer读书笔记(九)
- C++Primer读书笔记(十)
- C++Primer读书笔记(十一)
- C++Primer读书笔记(十二)
- Google Chrome/IE/FireFox查看HTTP请求头request header响应头response header|审查元素Network空的不显示
- UVA10025 The ? 1 ? 2 ? ... ? n = k problem
- 《Java TCP/IP Socket编程》读书笔记(4)
- Linux下DIR,dirent,stat等结构体详解
- JAVA代码(四)+存储分析
- C++primer读书笔记(一)
- 存储过程使用游标变量返回结果集
- VB.NET点点滴滴
- webservice HelloWorld示例 初步学习一
- 自我介绍
- 使用GDI+进行开发的一些问题(1)
- XML学习之Xml Schema:八、派生复杂类型--限制
- 项目KT总结
- 算法导论---红黑树删除详解