STL容器vector概念和注意事项(每次扩充都会重新开辟空间,释放原空间,即首元素地址会变一次)
摘要:1.vector容器基本概念 vector的数据安排以及操作方式,与array非常相似,两者的唯一差别在于空间的运用的灵活性。Array是静态空间,一旦配置了就不能改变,要换大一点或者小一点的空间,可以,一切琐碎得由自己来,首先配置一块新的空间,然后将旧空间的数据搬往新空间,再释放原来的空间。Vec
阅读全文
STL容器之string内存重定义
摘要:修改string字符串的内容,下标操作符[]和at都会返回字符的引用。但当字符串的内存被重新分配之后,可能发生错误 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; #include <string> v
阅读全文
STL容器之string与c_style类型转换
摘要:1.直接调用API转换 2.隐式类型转换 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; #include <string> /* string和c-style字符串转换 //string 转 char
阅读全文
STL容器之string插入和删除
摘要:1. /* 插入和删除操作 string& insert(int pos, const char* s); //插入字符串 string& insert(int pos, const string& str); //插入字符串 string& insert(int pos, int n, char
阅读全文
STL容器之string字串
摘要:字串 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; #include <string> /* 字串 string substr(int pos = 0, int n = npos) const;//返
阅读全文
STL容器之string比较
摘要:比较第一个不相同的字符的大小 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; #include <string> /* 比较 compare函数在>时返回 1,<时返回 -1,==时返回 0。 比较区分
阅读全文
STL容器之string查找和替换
摘要:1.查找和替换 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> using namespace std; /* 查找和替换 int find(const string& str, int pos = 0) c
阅读全文
STL容器之string存取字符串 []和at访问区别
摘要:存取字符串 char& operator[](int n);//通过[]方式取字符 char& at(int n);//通过at方法获取字符 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; #inclu
阅读全文
STL容器之string构造函数和基本赋值
摘要:1.构造函数和基本赋值 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; #include <string> /* 构造函数 string();//创建一个空的字符串 例如: string str; st
阅读全文
STL容器之string容器成员
摘要:基本概念 C风格字符串(以空字符结尾的字符数组)太过复杂难于掌握,不适合大程序的开发,所以C++标准库定义了一种string类,定义在头文件<string>。 String和c风格字符串对比: Char*是一个指针,String是一个类 string封装了char*,管理这个字符串,是一个char*
阅读全文
STL容器嵌套
摘要:vector STL 中的标准容器之一 :动态数组 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; #include <vector> #include <algorithm> void myPrint
阅读全文
STL三大组件(容器、算法、迭代器)初始及区分*it和it
摘要:容器 vector 算法 for_each 头 algorithm 迭代器 iterator 每个容器有专属迭代器 vector<int >v vector<int>::iterator it = ….. v.begin() 指向第一个数据 v.end 指向 最后一个数据的下一个地址 #define
阅读全文
文件读写
摘要:和文件有关系的输入输出类主要在fstream.h这个头文件中被定义,在这个头文件中主要被定义了三个类,由这三个类控制对文件的各种输入输出操作,他们分别是ifstream、ofstream、fstream,其中fstream类是由iostream类派生而来,他们之间的继承关系见下图所示: 打开并写入文
阅读全文
标准输出流
摘要:字符输出 cout.flush() //刷新缓冲区 Linux下有效 cout.put() //向缓冲区写字符 cout.write() //从buffer中写num个字节到当前输出流中 cout.put() cout.write() 格式化输出 实例: void test02() { int nu
阅读全文
用cin.sync()清空输入缓冲区是错误的
摘要:在vs中使用cin.sync()无法清空输入缓冲区 两种比较好的方法: cin.ignore(numeric_limits<streamsize>::max(),'\n') //需要包含<limits> 或者 cin.ignore(cin.rdbuf()->in_avail()) 实例: void
阅读全文
标志位与清空缓冲区--???
摘要:让用户输入指定范围内的数字,如果不正确 重新输入 cin.fail() 看标志位 0正常 1不正常 cin.clear()重置标志位 cin.syne() 清空缓冲区 解决不了死循环问题 void test07() { int num; cout << "请输入0-10的数字" << endl; w
阅读全文
标准输入流
摘要:标准输入流 cin.get 缓冲区中读取一个字符 cin.get(两个参数) 不读换行符 cin.getline () 读取换行 并且扔掉 cin.ignore 忽略 (N) N代表忽略字符数 cin.peek 偷窥 偷看1个字符然后放回去 cin.putback 放回 把字符放回缓冲区 cin.g
阅读全文
输入和输出流
摘要:流的概念和流类库的结构 程序的输入指的是从输入文件将数据传送给程序,程序的输出指的是从程序将数据传送给输出文件。 C++输入输出包含以下三个方面的内容: 对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。 以外存磁盘文件为对象进行输
阅读全文
编写自己的异常类
摘要:编写自己的异常类 自己的异常类 需要继承于 exception 重写 虚析构 what() 内部维护以错误信息 字符串 构造时候传入 错误信息字符串,what返回这个字符串 string 转 char * .c_str(); #define _CRT_SECURE_NO_WARNINGS #incl
阅读全文