![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
文章平均质量分 87
milan-xiao-tiejiang
2015年开始Android App开发,精通Java、Kotlin、c++等Android开发语言,阅读过系统源码及多方Android主流框架,对 vue、flutter等也有一定的认知。
Java方向技术全面,熟练掌握Spring、MySQL等Java Web相关技术,掌握分布式架构体系。
2020年转向c++工程师,重新系统学习c++语法,目前从事清洁服务机器人相关领域。
tip:北京寻求Android、c++职位
展开
-
UNIX 线程相关知识体系
介绍了现有的创建和销毁线程的方法,还介绍了线程同步问题,讨论了5个基本同步机制(互斥量、读写锁、条件变量、自旋锁、屏障)原创 2022-11-07 17:13:38 · 342 阅读 · 0 评论 -
C++ 11 后一些便捷用法
自动类型推断,就是编译器能够根据表达式的类型,自动决定变量的类型(从 C++14 开始,还有函数的返回类型)但需要说明的是,auto 并没有改变 C++ 是静态类型语言这一事实——使用 auto 的变量(或函数返回值)的类型仍然是编译时就确定了,只不过编译器能自动帮你填充而已。decltypedecltype 的用途是获得一个表达式的类型,结果可以跟类型一样使用。它有两个基本用法:如果我们有 int a;,那么:类模板的模板参数推导列表初始化类数据成员的默认初始化如果一个类没有使用初始化列原创 2022-07-23 17:25:06 · 326 阅读 · 0 评论 -
C++ 中容器合集
string是模板basic_string对于char类型的特化,可以认为是一个只存放字符char类型数据的容器。“真正”的容器类与string的最大不同点是里面可以存放任意类型的对象。不管是内存布局,还是成员函数,string和vector是非常相似的。string当然是为了存放字符串。一般不建议在接口中使用conststring&,除非确知调用者已经持有string。...原创 2022-07-23 15:25:14 · 457 阅读 · 0 评论 -
Effective C++
让自己习惯 C++条款1:视 C++ 为一个语言联邦条款2:尽量以 const、enum、inline 替换 #define条款3:尽可能使用 const条款4:确定对象使用前已先被初始化构造/析构/赋值运算条款5:了解 C++ 默认编写并调用哪些函数条款6:若不想使用编译器自动生成的函数,就该明确拒绝条款7:为多态基类声明 virtual 析构函数条款8:别让异常逃离析构函数条款9:绝不在构造和析构过程中调用 virtual 函数条款10:令 operator= 返回一个 refer原创 2022-01-24 12:17:52 · 137 阅读 · 1 评论 -
指针小结
1、声明指针要声明指向特定类型的指针,请使用下面的格式: typeName * pointerName;下面是一些示例: double * pn; char * pc;其中,pn 和 pc 都是指针,而 double * 和 char * 是指向 double 的指针和指向 char 的指针。2、给指针赋值应将内存地址赋值指针。可以对变量名应用 & 运算符,来获得被命名的内存地址,new 运算符返回未命名的内存地址。下面是一些示例:.原创 2020-08-12 00:27:57 · 164 阅读 · 0 评论 -
c++学习总结(基本类型)
C++ 在 C 语言的基础上添加了对面向对象和泛型编程的支持,它继承了 C 语言的高效、简洁、快速和可移植性的系统,它的面向对象又能应付复杂程度不断提高的现代编程,它的泛型编程又提供了新的编程方式。C 语言增加了如控制结构和函数等特性,以支持结构化和模块化,C++ 增加了对面向对象编程和泛型编程的支持,更加有助于提高模块化和创建可重用代码,从而节省编程时间并提高程序的可靠性。创建第一个 C++ 程序必须了解两个函数:C++ 中输出 cout 和输入 cin#include <iostream原创 2020-07-15 00:25:28 · 162 阅读 · 0 评论 -
简单实现C++智能指针
RAII 的基本用法工厂方法的简单示例enum class shape_type { circle, triangle, rectangle,};class shape{};class circle :public shape {};class triangle :public shape {};class rectangle :public shape {};create_shape 方法会返回一个 shape 对象,对象的实际类型是某个 shape 的子类。函数的返回值原创 2020-06-29 01:05:51 · 201 阅读 · 0 评论 -
初识指针
int *p对指针变量的声明与对普通变量的声明基本一样,唯一的不同就是必须在指针变量名字前放置星号。上述声明说明 p 是指向 int 类型对象的指针变量。C语言要求每一个指针变量只能指向一种特定类型(引用类型)的对象。事实上,指针变量甚至可以指向另一个指针,即指向指针的指针。int i, *p;...p = &i;C语言为了找到变量的地址,使用 & (取地址)运算符。为了获得对指针所指向对象的访问,可以使用 * (间接寻址)运算符。如上,如果 p 是指针,那么 ..原创 2020-06-17 23:20:16 · 133 阅读 · 0 评论 -
C / C++ 中预处理器
宏定义#define指令(简单的宏) 替换列表宏的替换列表可以包括标识符、关键字、数值常量、字符常量、字符串字面量、操作符和排列。当预处理器遇到一个宏定义时,会做出一个“标识符”代表“替换列表”的记录。在文件后面的内容中,不管标识符在哪里出现,预处理器都会用替换列表代替它。程序会更易读 程序会更易于修改 可以帮助避免前后不一致或键盘输入错误 可以对C语法做小的修改 对类型重命名 控制条件编译列子#define STE_LEN 80#define TRUE 1#define原创 2020-06-16 22:45:47 · 163 阅读 · 0 评论 -
一个C Programming的小案例
好久没有更新了,最近在疫情期间裸辞,还疯狂的“游戏”了一个月的人生,现在把心收回来,继续写博客。word.h#ifndef WORD_H#define WORD_Hvoid read_word(char *word, int len);#endifword.c#include <stdio.h>#include "word.h"int read_char(void){ int ch = getchar(); if(ch == '\n' || ch == '\t')原创 2020-06-09 02:18:51 · 183 阅读 · 0 评论