数据结构与算法 先修课

版权声明:本文为博主原创文章,转载标注出处。联系微信btc20002000 https://blog.csdn.net/qq_36666115/article/details/88367323

先修基础

  • C++语言程序设计基础:类、继承、重载、重写、虚方法、模板
  • 离散数学基础: 集合、偏序集、良序、数学归纳法、级数、递归、递推
  • 概率基础: 随机分布、概率、伯努利实验、数学期望、期望值的线性律

基础详解

一、 C++

每一个代码模板

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}

编译运行

g++ helloworld.cpp -o helloworld

./helloworld

或者使用"makefile"
注意C++ 关键词
注释: /* */ //
数据类型:
类型修饰符进行修饰 signed unsigned short long
typedef 声明:使用 typedef 为一个已有的类型取一个新的名字

定义常量:

  • 使用 #define 预处理器。
#define LENGTH 10   
#define WIDTH  5
#define NEWLINE '\n'
  • 使用 const 关键字。
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = '\n';

static 存储类

static int count = 10; /* 全局变量 */
void func( void )
{
    static int i = 5; // 局部静态变量
}

逻辑运算符 : && || !
位运算符: &、 | 和 ^ (异或)~ (补码) <<(二进制左移运算符) >>(二进制右移运算符)
杂项运算符:
sizeof
& 返回变量的地址

  • 指向一个变量

数学运算:
< cmath >
double pow(double, double); double floor(double);

随机数:

// 设置种子
   srand( (unsigned)time( NULL ) );
   // 只返回一个伪随机数
   rand();

数组:

  • 声明数组
    double balance[10];
  • 初始化数组
    double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
    double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
    balance[4] = 50.0;
  • 访问数组元素
    double salary = balance[9];
  • 作用
    传递数组给函数。
    从函数返回数组。 int * getRandom( ) {static int r[10];}

字符串:#include < string >

  • strcpy(s1, s2);
    复制字符串 s2 到字符串 s1。
  • strcat(s1, s2);
    连接字符串 s2 到字符串 s1 的末尾。
  • strlen(s1);
    返回字符串 s1 的长度。
  • strcmp(s1, s2);
    如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回值小于 0;如果 s1>s2 则返回值大于 0。
  • strchr(s1, ch);
    返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
  • strstr(s1, s2);
    返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。

引用:
引用 vs 指针:

  1. 不存在空引用。
  2. 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
  3. 引用必须在创建时被初始化。指针可以在任何时间被初始化。

1. 类

类可以定义为描述对象行为/状态的模板/蓝图。

2. 继承

子类继承父类

3. 重载

4. 重写

5. 虚方法

6. 模板

猜你喜欢

转载自blog.csdn.net/qq_36666115/article/details/88367323