抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

泛型算法-1

泛型算法实现了一些经典算法的公共接口,如排序和搜索;称它们是“泛型的”,是因为它们可以用于不同类型的元素的和多种容器类型(不仅包括标准库类型,还包括内置的数组类型),以及其它类型的序列。

** 大多数算法都定义在头文件algorithm中 **

算法永远不会执行容器的操作

gcc常见编译选项

  • ** -c **:只激活预处理、编译和汇编,也就是生成obj文件
  • ** -S **:只激活处理和编译,把文件编译成汇编代码
  • ** -o **:定制目标名称,缺省的时候编译出来的可执行程序名为a.exe(windows)或a.out(linux)
  • ** -Wall **:打开一些很有用的编译警告
  • ** -std **:指定C标准,如-std=99,使用C99标准
  • ** -g **:指示编译器,编译的时候添加调试信息
  • ** -O0 -O1 -O2 -O3 **:编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高

main:处理命令行

//main函数的两种定义形式
int main(int argc,char **argv[])
int main(int argc,char *argv[])
  • argc:指的是命令行中输入参数的个数
  • argv:一个数组,它存储了所有的命令行参数

IO库

** IO库设施: **

  • istream类型:提供输入操作
  • ostream类型:提供输出操作
  • cin:一个istream对象,从标准输入读取数据
  • cout:一个ostream对象,从标准输出写入数据
  • cerr:一个ostream对象,通常用于输出程序错误信息,写入到标准错误
  • >>运算符:用来从一个istream对象读取输入数据
  • <<运算符:用来向一个ostream对象写入数据
  • getline函数:从一个给定的istream读取一行数据,存入一个给定的string对象中

使用struct关键字定义类*** 使用class和struct定义类的唯一区别就是默认的访问权限 ***] 使用struct关键字,定义在第一个访问说明符之前的成员是public 使用class关键字,定义在第一个访问说明符之前的成员是private 定义在类内的成员函数是自动inline的 12345678910111213141516171819202122232425262728...

C++输出精度(precision)控制,格式化输出

使用cout对象的成员

  • setprecision()
  • setf()
  • width()
  • fill()
  • flags(ios::fixed)

标准库类型string

  • 标准库类型string表示可变长的字符序列
  • 使用string类型必须包含string头文件,string定义在命名空间std中

定义和初始化string对象

初始化string对象的方式

初始化方式 说明
string s1 默认初始化,s1是一个空字符串
string s2(s1) s2是s1的副本
string s2=s1 等价于s2(s1),s2是s1的副本
string s3(“shansan”) s3是字面值”shansan”的副本,除了字面值最后的那个空字符串外
string s3=”shansan” 等价于s3(“shansan”)
string s4(n,’c’) 把s4初始化为由连续n个字符c组成的串

c++11特性

列表初始化

  • 使用花括号来初始化对象
  • 使用列表初始化内置类型的变量,可能会存在丢失信息的风险

C++文件和流


在C++中进行文件处理,可使用标准库fstream

它定义了三个新的数据类型,用于从文件写入流和从文件读取流

数据类型 描述
ofstream 该数据类型表示输出文件流,用于创建文件并向文件中写入信息
ifstream 该数据类型表示输入文件流,用于从文件中读取信息
fstream 该数据类型通常表示文件流,同时具有ofstream和ifstream两种功能,他可以创建文件,向文件中写入信息,从文件中读取信息