zoukankan      html  css  js  c++  java
  • 第一章:开始

    编写一个简单的程序

    • 函数:包含4部分:返回类型,函数名,形参列表,函数体。其中函数体是一个语句块。
    • main函数:每个cpp程序都有且仅有一个main,os通过调用main来运行程序。main函数的返回类型必须为int,被用于指示状态,0表示成功返回,非0值由系统定义,常用于指出错误类型。
    • 类型:一种类型不仅定义了数据元素的内容,还定义了这类数据上可进行的操作。即:类型=内容+操作

    编译、运行程序

    • 后缀:C++源文件的常见后缀名包括:.cc .cxx .cpp .cp .C
    • 执行:unix中可执行文件的名称任意,执行时输入完整文件名。windows中可执行文件后缀为.exe,执行时不需输入.exe
    • 查看返回值:可在程序执行完后用echo查看main函数返回值,unix中用echo $?,windows中用echo %ERRORLEVEL%
    • GNU编译g++ -o prog1 prog1.cc,其中-o prog1指定输出文件名,未指定时为a.out。另外可用-std=c++11来开启C++ 11
    • VS编译cl /EHsc prog1.cpp,其中/EHsc是编译器选项,用于打开标准异常处理。VS生成的可执行文件名与第一个源文件名相同,后缀为.exe
    • 开启warning:GCC中用-Wall,VS中用/W4

    初识输入输出

    • 在标准库iostream中提供IO机制
    • 2个基础IO类型istreamostream,分别是输入流和输出流,一个流是一个字符序列
    • 4个IO对象:标准输入cin,标准输出cout,标准错误cerr,一般信息clog,系统经常将程序运行的窗口与这些对象关联,即这些对象与程序运行的窗口交互
    • 头文件:使用标准库的设施都应用#include来包含相关头文件,通常#include必须出现在所有函数之外
    • 表达式:一个表达式产生一个计算结果,它由一个或多个运算对象和一个或多个运算符组成
    • 输出运算符<<:接受两个对象,左侧一个ostream对象,右侧是要打印的值。此运算符将右侧对象的值写入左侧ostream对象中,返回左侧ostream对象,级联时从左到右结合。因此级联时,同一个ostream对象被从左到右的一系列«操作,即从左到右输出值。
    • 操纵符endl:写入此操纵符的效果是结束当前行,并刷新缓冲区,即,将与设备关联的缓冲区中的内容刷到设备中。若不手动刷新,则需等到缓冲区满才会自动刷新,所以建议调试时每一步都使用endl手动刷新(比较耗时)
    • 命名空间:帮助避免名字冲突,标准库定义的所有名字都在std
    • 作用域运算符:::用std::cout来指定命名空间std中的cout名字
    • 初始化:初始化一个变量,就是在变量创建的同时为其赋值。
    • 输入运算符>>:接受两个对象,左侧一个istream对象,右侧是要被写入的变量。此运算符从左侧istream对象中读入数据,存入右侧对象中,返回左侧istream对象,级联时从左到右结合。因此级联时从同一个istream对象中连续读入数据,依次放入从左往右的对象中。
    • 运算符重载:例如int v; std::cout<<"value is "<<v<<std::endl;的代码,三个<<处理的对象类型不一样,是不同的运算符。标准库定义了不同类型的运算符来处理不同类型的对象,遇到匹配的时自动选择。

    注释简介

    • 有两种注释:单行注释//和界定符对注释/* */
    • 界定符对跨越多行时,最好显式指出内部行属于多行注释,风格是每行一个星号开头,例如:
    1
    2
    3
    4
    5
    
    /* 
     * this is a comment, 
     * continue ...
     */
    
    
    • 单行注释以双斜线//开始,以换行符结束,可进行单行或半行注释,注释内容可包含任何文本包括重复的双斜线
    • 界定符对注释不能嵌套,(所以调试时最好用单行注释)

    控制流

    while语句

    • while先判断后执行,do...while先执行后判断
    • 条件是一个返回真或假的表达式
    • 语句块是语句的一种,任何可使用语句的地方都可用语句块
    • i++和++i的区别:i++在语句执行后对i自增,++i在语句执行前对i自增。另外,从运行速度来讲,由于i++返回i的值,而++i返回i的引用,所以对于类类型,++i更快。

    for语句

    • for循环头中声明的变量,只在循环头和循环体中有效
    • for循环头:一个初始化语句;一个循环条件;一个表达式
    • for和while都是先判断后执行
    • 每一次都是循环体执行完后再执行循环头中的表达式

    读取数量不定的输入数据

    • 用while实现,当istream对象作为条件时,只要流是有效的,就返回true
    • 当遇到EOF,或从流中读到的数据无法转为右侧对象时,流变为无效
    • 手动输入EOF:unix中用ctrl+d,windows中用ctrl+z然后enter
    • 编译器能检查出的错误:语法错误(syntax error),类型错误(type error),声明错误(declaration error)
    • debug好习惯:按照报错的顺序修改,每修改一个就立即重新编译

    if语句

    • 注意===的返回值都能作为真假被if接受

    类简介

    • 一个类定义了一个类型,以及与其关联的一组操作
    • 习惯上,头文件根据其中定义的类的名字来命名
    • 头文件的后缀通常为.h .H .hpp .hxx,标准库的头文件通常不带后缀。编译器一般不关心头文件名的形式。

    Sales_item类

    • 包含来自标准库的头文件时应用尖括号<>,不属于标准库的头文件用双引号""
    • 文件重定向:大多数系统都可用a.out <infile >outfile来将infile内容作为标准输入,并将标准输出写入到outfile

    初识成员函数

    • 成员函数是定义为类的一部分的函数,有时也被称为方法
    • 点运算符只能用于类类型的对象,其左侧是类类型的对象,右侧是该对象的一个成员名
    • 调用运算符()用于调用一个函数
  • 相关阅读:
    整数因子分解问题(递归分治法、动态规划)
    背包问题(动态规划 C/C++)
    划分问题(Java 动态规划)
    算法:Common Subsequence(动态规划 Java 最长子序列)
    算法:矩阵连乘(Java)动态规划
    Frogs‘ Neighborhood(POJ 1659 C/C++)
    算法:线性时间选择(C/C++)
    sort(hdu oj 1425)计数排序和快速排序
    快速排序(递归和分治)
    a^b(取模运算)
  • 原文地址:https://www.cnblogs.com/updown/p/14280326.html
Copyright © 2011-2022 走看看