cpp
九乡河码豚
南大软院摸鱼人一枚~
展开
-
cpp 容器vector
vector优秀的cpp stl容器!1.vector特性:动态数组顺序序列2.vector功能函数.size() number of elements.push_back() insert element in the end.pop_back() delete element in the endswap() swap two elementsreverse() in a partitionvector<int> nums; //增 nums.pu原创 2021-08-21 16:35:28 · 279 阅读 · 0 评论 -
cpp2.1面向对象程序设计基础
oo基本知识1.类的声明,头文件,源文件1.1头文件(.h):写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。在写头文件时,在开头和结尾处必须加上预编译语句,但一般ide会自动帮你写好。#ifndef CIRCLE_H#define CIRCLE_H//定义,声明等#endif头文件举例:class Circle{private: double r;//半径public: Circle();//构造函原创 2021-08-20 09:16:11 · 170 阅读 · 0 评论 -
异或交换元素值,陷阱!
void swap(int *a,int *b){//注意要传指针进来,否则改变不了真实内存中的变量值*a=*a^*b;*b=*a^*b;*a=*a^*b;}在这里,要注意每次a,b不能占用的是同一块内存,那样的话这块内存就会被清零。因此,在数组元素交换,字符串反转等问题中要尤其注意。...原创 2021-08-20 08:50:11 · 72 阅读 · 0 评论 -
cpp期末笔记1.6指针
cpp指针1.void指针:指针类型的公共接口void指针:没有基类型,只能用来记录地址,无法操作其中的存储内容void指针可以赋值为任意基类型的指针,为所有不同类型的指针定义了公共接口其他基类型的指针不能赋值为void类型,但可以显式地说明出来:void *any_pointer; int x; double y;any_pointer = &x;any_pointer = &y; *any_pointer //原创 2021-07-29 20:09:20 · 79 阅读 · 0 评论 -
cpp期末笔记1.5数组,结构体与union
cpp数组,结构体,union1.数组的定义与传参int A[6];定义上A就是数组类型,有sizeof(A)=6*sizeof(int)当它作为参数传递时,才变成了一个指针,所以要加个长度,因此才有了数组传参时,需要传进去两个参数(数组名和数组长度)void f(int a[], int n);符号串(字符串)可以不传长度,因为末尾有‘\0’字符void f(char a[]);特例:char s2[]={'a','b','c'}; cout << s2;原创 2021-07-29 12:54:01 · 198 阅读 · 0 评论 -
cpp期末笔记1.4程序组织
cpp程序组织每一个cpp都会被编译成一个obj文件linker装成exe文件1.头文件.h与源文件.cpp1.1头文件定义:不占空间的,描述,常量定义,变量/函数声明,内联函数(必须写到.h上)头文件:我想提供的服务,我开放的数据和计算写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。//预编译语句#ifndef CIRCLE_H#define CIRCLE_H//代码#endif1.2源文件源原创 2021-07-29 12:42:33 · 90 阅读 · 0 评论 -
cpp期末笔记1.3inline
cpp内联函数目的:提高可读性;提高效率目的:“这么说吧,程序在编译器编译的时候,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体进行替换,而对于其他的函数,都是在运行时候才被替代。”仅仅是请求,有可能被拒绝inline int Max(int x, int y){ return (x > y)? x : y;}1.对象使用频率高、简单、小段代码2.限制不支持递归不存在函数指针inline只是对系统的提示,函数体过大(增加代码长度,多占内原创 2021-07-28 21:48:56 · 109 阅读 · 0 评论 -
cpp期末笔记1.2函数
cpp函数malloc(申请多少字节),返回void*1.函数调用过程建立被调用函数的栈空间参数传递值传递 (call by value)引用传递 (call by reference)保存调用函数的运行状态将控制转交被调函数符号表:变量/函数和地址对应关系2.函数调用:栈栈底为esp,一直往下掉,退栈时上升基址:ebpmain调用f时,压栈顺序:1.参数传递,2.返回地址(返回main后执行的指令的地址)3.main的ebpf找参数:ebp上移找到参数,计算完成e原创 2021-07-28 18:19:23 · 109 阅读 · 0 评论 -
cpp期末笔记1.1表达式和语句
cpp表达式1.表达式语义决定:优先级结合性类型转换约定(两种方式:默认(不用自己管);强制(double)x)求值次序:右往左,还是左往右2.表达式的副作用(是我们要严格禁止的)1.破坏可移植性2.降低可读性typedef为已有的类型定义一个同义词int & foo(){int x=0;return x;}//局部变量应该是不能返回引用的a = a^b;b = b^a;a = a^b;3.语句switch语句的case只能处理整型常量switch原创 2021-07-28 11:45:34 · 92 阅读 · 0 评论 -
cpp基本io操作
cppio基本io流提取符 >>,以空白字符或输入结束字符为终止cin读入一个字符:using namespace std;char ch;cin.get(ch);读入未知个数的字符:char ch;while(cin.get(ch)){}读入未知个数的数字:int n;while(cin>>n){}读入固定格式的坐标,固定格式为: (0,0),(1,1)char c;int x1, y1, x2, y2;cin >> c原创 2021-07-27 17:38:14 · 284 阅读 · 0 评论