命名空间 1、为什么使用命名空间 在C/C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字 污染,namespace关键字的出现就是针对这种问题的。 2、命名空间定义 定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。 namespace cpp {int a = ...
首先我们先了解一下内存: C语言使用malloc/free动态管理内存空间,C++引入了new/delete,new[]/delete[]来动态管理内存。如果大家在自学C++中遇到困难,想找一个学习C++的环境,可以加入我的C++学习交流扣群先是513801371,能够共同学习交流和分享!![](http://www.icode9.com/i/li/?n=1&i=images/blog/201905/11/f3795621980960d47c291497e516b846.jpg?,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_...
1、什么是并发? 并发指的是两个或多个独立的活动在同一时段内发生。生活中并发的例子并不少,例如在跑步的时候你可能同时在听音乐;在看电脑显示器的同时你的手指在敲击键盘。这时我们称我们大脑并发地处理这些事件,只不过我们大脑的处理是有次重点的:有时候你会更关注你呼吸的频率,而有时候你更多地被美妙的音乐旋律所吸引。这时我们可以说大脑是一种并发设计的结构。这种次重点在计算机程序设计中,体现为某一个时刻只能处...
基础算法 目录基础算法交换冒泡排序选择排序顺序查找递归的折半查找递归排列组合 交换 /** author:起风了_Zoe* date:2020.03.30*/ #include <iostream> #define SWAP(x,y,t) ((t)=(x),(x)=(y),(y)=(t)) // 宏函数 using namespace std;void swap_value(int x, int y); // 值传递 void swap_pointer(int *px, int *py); // 指针传递 void swap_quote(int &x, int &y); // 传引用int main() {int a,b;a = 1; b = 10;cout <...
while循环 ``` while (表达式)语句 ``` 表达式是一个关系表达式或一个逻辑表达式,当值为真是开始循环执行语句,为假退出循环。 循环每次执行完语句后回到表达式出重新开始判断,重新计算表达式的值。 do...while循环 ``` do 语句 while(表达式); ``` 1.循环时先执行循环体,即使循环条件不成立,循环体已经执行一次了 2.表达式不能为空,为空不合法 3.表达式可用0和1表示 4.循环体中必须要有改变条件表达式值得语句,不然将成...
立即学习:https://edu.csdn.net/course/play/474/5126?utm_source=blogtoedu类的公用借口和私有实现的分离形成了信息隐蔽 方法是指对数据的操作 消息是指对公用函数的调用
一些小知识点 输出数组内容 a[1]=*(a+1)=*(1+a)=1[a] cout<<1[a];//也可以堆的大小是没有限制的,而栈有,一般为8MB,因此不宜在线程中嵌套太深的函数或太大的局部变量。结构体变量占用的内存并不是各部分相加,而是必须是其中最大数据类型的整数倍,目的是为地址对齐,提高读写速度。C++中使用多态时,不要使用派生类给父类初始化,否则会导致对象切断。每个派生类都调用自己直接基类的构造函数,但最终派生类的构造函数负责调用虚...
重载比较运算符 重载比较运算符相对简单,因为它们遵循我们在重载其他运算符时看到的相同模式。 因为比较运算符都是不修改左操作数的二元运算符,所以我们将使重载的比较运算符声明为友元函数。 这是一个带有重载运算符==和operator!=的Car类的示例。 #include <iostream> #include <string>class Car { private:std::string m_make;std::string m_model;public:Car(std::string make, std::string model): m_make(make), m_model...
题主有一点 Linux 基础。回复内容: Python / C题主这个顺序排的其实非常精彩。从左到右:混乱善良 - 绝对中立 - 守序邪恶life is short, you need python题主在问题前面界定了一个谦虚的前提:"基础不好的人", 那么我本着实用的角度稍作建议.学习是为了使用的,是为了你能用你所写的一些代码段解决你自己的问题, 所以首先你应该定位清楚你学习(php/shell/perl/python/c/c++ )到底是为了什么?有了明确的目的,才能找到称手的工具,不要...
host, string user, string passwd, string db, unsigned port) {m_host = host;m_user = user;m_passwd = passwd;m_dbname = db;m_port = port;mysql_init(&connect); }bool MySQL::connectDB() {if (!mysql_real_connect(&connect, m_host.c_str(), m_user.c_str(), m_passwd.c_str(), m_dbname.c_str(), m_port, NULL, 0)){cout << "mysql connect error with " << mysql_errno(&connect) << endl;return false;}return true; }...
C++并发编程基础 在C++线程库中提供一个native_handle()成员函数,允许通过使用平台相关API直接操作底层实现。 为了并发地运行函数,需要使用特定的函数以及对象来管理各个线程。C++在头文件中提供了管理线程的类和函数 一个简单的Hello, Concurrent World程序: #include <iostream> #include <thread> //① void hello() //② {std::cout << "Hello Concurrent World\n"; } int main() {std::thread t(hello); //③t.join(); ...
参考 1. 004 - 指针和引用的区别是什么? 完
语法 char str[25] = "hello"; //字符数组 printf("%s", str); #define pi 3.24 const double pi=3.24; //设置常量 const int INF=0x3fffffff; //无穷大常用2^30-1 printf("%5d\n",a);//使a占5位,高位用空格补齐(超过5位则不变),%05d 高位0补齐 ,%.1f 保留一位小数 struct node{node n; //错误表述,不可定义自身node* next; //正确,可定义自身类型的指针 }; 结构体的优先级设置 struct fruit{string name;int price;f...
目录一.认识 C++C++的特点命名空间C++从源码到可执行文件所经历的过程C++ 标识符规则关键字:二.C++ 数据类型三.C++ 变量常量变量变量作用域常量四.C++ 修饰符数据类型修饰符类型限定符存储类修饰符五.C++ 运算符算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符六.C++ 三大结构顺序结构分支结构循环结构七.C++ 数字、数组、字符串数数组字符串一.认识 C++ C++的特点C++ 是一种静态类型的、编译式的、通用的、大小写敏感...
关键词 编译器优化,多线程并行,非临界区共享对象 volatile修饰符 volatile 类似于大家所熟知的const也是一个类型修饰符,用于指示编译器对它所修饰的对象不应该执行优化。多见于多线程编程中的“共享”环境中。 定义为volatile的变量是说这变量可能会被意想不到地改变,即在你程序运行过程中一直会变,你希望这个值被正确的处理,每次从内存中去读这个值,而不是因编译器优化从缓存的地方读取,比如读取缓存在寄存器中的数值,从...