C++学习笔记(C转)

C++学习笔记(C转)

开发工具注释

Visual studio ctrl+k+c(注释) ctrl+k+u(放开注释)
C语言可常用 #if 0 #endif #if 1 #endif
Eclipse(c/c++版)鼠标拉选标记后 ctrl+/(斜线)

const常量 和 指针 *

const * 变量 常量指针, 指针地址可变,指向的值不可变 * const 指针地址不可变,指针指向的值可变

引用&

常见于函数参数,fun(std::string &str)  str可在函数内修改,并在函数内修改引用的值,指针需要*str来修改值

得到数组大小

Sizeof(a)/sizeof(a[0])

常用ASCII码

[0xA \n] [0xC \r] [124 |]

Char* 和 string

Char* 以\0结尾,打印只打之前的字符 定长可以用字符数组,不定长使用指针动态分配内存大小
String 本身有长度属性 可以添加\0 同时打印后面的字符串内容
String.c_str() 转换成可读的const char* 多用于格式化字符串打印

键入值

C语言 scanf 需带格式化输入 %s %c %d printf
C++ cin>> cout<<

static_cast 强转变量类型 (不会改变被转换变量的值)

JsonValue1[“***”] = static_cast(double_temp1)

enum 枚举 这样写case常量能够清晰的根据名称 了解代码逻辑 默认0开始

enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATERDAY, SUNDAY } ;

头文件

可能多次使用导致重复定义,所以需要使用宏定义,#ifndef XXXX
#define XXXX #include “***.h” #endif

格式化输出转换

常用snprintf;字符串转整形,atoi->strtod,atoll->strtoll; 原型long long strtoll(
const char *str, char str_end, int base ); 有些编译器 atoll返回的可能就只是32位bit的 unsigned
int,这时候需要使用strtoll(str,NULL,10)返回转成10进制的long long,如果之后还需要转换成16进制,注意需要使用 %llx来格式化,%x会导致转换后的结果错误

string字符串编码修改

去掉所有换行:str.erase(remove(str.begin(),str.end(),’\n’),str.end());

win10添加共享编译盘路径

R原生字符串

	string str2 = "D:\\work\\user\\name";
	string str3 = R"(D:\work\user\name)";  //不需要转义字符 \/\r\n
	cout << str2 << endl;
	cout << str3<< endl;

运行结果

win10添加共享编译盘路径

文件夹-》邮件属性-》共享-》everyone->共享确定-》网络路径

pc常用工作软件

Eclipse,Vscode,Source Insight(代码ide)Wireshark抓包);postman(批量下发cgi,指令);
Xshell,SecureCRT(系统操作打包)Xftp.tftpd64(文件传输工具)nodepad++,UltraEdit(报文日
志查看)beyond compare(比对工具)

map容器

插入一个 insert(map<type, type>::value_type(key, value)) 元素 值
m.insert(pair<int, int>(1, 10));

删除一个 erase(iterator)
清空 clear()
判空 empty()
查找 find(key)
统计个数 count(key)
从头到尾遍历 begin() 到 end()
使用场景:去重

vector容器 (STL中最常用的容器)

替代 c int[] 刷题很常用
判断是否为空 — empty
返回元素个数 — size
返回容器容量 — capacity
重新指定大小 — resize

尾插 — push_back
尾删 — pop_back
插入 — insert (位置迭代器)
删除 — erase (位置迭代器)
清空 — clear

sort函数

使用此函数需先包含:#include <algorithm>,并且导出命名空间;
sort(first_pointer,first_pointer+n,cmp) 该函数可以给数组,或者链表list、向量排序。
一行即可快速排序,解放双手(相对于C语言)

//例子:
vector<int> a; int b[5];
sort(a.begin(),a.end());sort(b,b+5);

日志查看与挂载抓包

串口方式:设备串口连接电脑   ssh远程 :登录设备终端可查看
远程挂载:mount -t nfs -o nolock,tcp *.*.*.*:/user/ /home
本地挂载:mount -t nfs -o nolock,tcp  *.*.*.*:/c/user /home

抓包:ssh登录设备后台 执行./tcpdump -i eth0 -s 0 –w 1.pcap –v

常用设计模式

观察者模式:队列中存放多个观察者,当目标对象修改后,逐一通知观察者们
attach订阅观察者后, 观察者notify发布一条指令, 观察者们都会收到消息(可分别做出不一样的反应处理), 对象使用完后可detach取消订阅
单例模式:类声明一个static静态实例instance,每次处理都使用该实例调用方法,对于只需要单线程的对象类使用,保证唯一性,减少内存开支和系统的性能开销

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值