
C/C++
zhiyong_will
这个作者很懒,什么都没留下…
展开
-
C++中的explicit关键字
1. explicit关键字explicit的中文含义是显示的,在C++中主要用于防止隐式转换的发生。那么什么是隐式转换,以如下的代码为例#include <iostream>using namespace std;class Demo { public: Demo() {} Demo(int a) { _value1 = a; } int get_value() {原创 2021-01-30 10:31:35 · 262 阅读 · 0 评论 -
C/C++——生成随机数
1、不指定范围的随机数在C/C++中,产生随机数需要使用到函数srand()函数和rand()函数。在C语言中,srand()函数和rand()函数都是定义在2、在指定范围内生成随机数2.1、生成在指定区间start~end之间的随机整数:#include <stdio.h>#include <stdlib.h>#include <time.h>int Random(int start, int原创 2016-10-18 17:26:16 · 20924 阅读 · 0 评论 -
C/C++——map的基本操作总结
标准库map类型是一种以键-值(key-value)存储的数据类型。以下分别从以下的几个方面总结:map对象的定义和初始化map对象的基本操作,主要包括添加元素,遍历等原创 2016-06-20 17:18:45 · 120366 阅读 · 4 评论 -
C/C++中的变长结构体
1、问题来源在博文数据结构和算法——kd树中,在构建kd树的过程中,有如下的一段代码:#define MAX_LEN 1024typedef struct KDtree{ double data[MAX_LEN]; // 数据 int dim; // 选择的维度 struct KDtree *left; // 左子树 struct KD原创 2017-02-16 20:29:33 · 2325 阅读 · 0 评论 -
C/C++——set的基本操作总结
1、原创 2016-06-22 13:35:24 · 42637 阅读 · 1 评论 -
C/C++——vector的基本操作总结
标准库vector类型是C++中使用较多的一种类模板,vector类型相当于一种动态的容器,在vector中主要有一些基本的操作,接下来分别从以下的几个方面总结:vector对象的定义和初始化vector对象的基本操作,主要包括添加元素,遍历等1、vector对象的定义和初始化在vector中主要有四种定义和初始化的方法:1.1、定义空的vector定义的方法为:vector<T> v;1.原创 2016-06-17 16:45:29 · 33159 阅读 · 1 评论 -
Linux C 编程——互斥锁mutex
1、多线程的问题引入多线程的最大的特点是资源的共享,但是,当多个线程同时去操作(同时去改变)一个临界资源时,会破坏临界资源。如利用多线程同时写一个文件:#include <stdio.h>#include <pthread.h>#include <malloc.h>const char filename[] = "hello";void* thread(void *id){ int原创 2017-03-14 20:37:54 · 35472 阅读 · 9 评论 -
Linux C 编程——多线程
线程是计算机中独立运行的最小单位,运行时占用很少的系统资源。与多进程相比,多进程具有多进程不具备的一些优点,其最重要的是:对于多线程来说,其能够比多进程更加节省资源。1、线程创建在Linux中,新建的线程并不是在原先的进程中,而是系统通过一个系统调用clone()。该系统copy了一个和原先进程完全一样的进程,并在这个进程中执行线程函数。在Linux中,通过函数pthread_create()函数实原创 2017-03-13 16:30:36 · 2227 阅读 · 0 评论 -
C/C++——排序
在C/C++中的排序,使用到的函数主要有:sort()qsort()下面详细分析sort()函数和qsort()函数。1、sort()函数sort()是STL中提供的算法,头文件为:#include<algorithm>using namespace std;函数原型如下:template <class RandomAccessIterator>void sort ( RandomAcce原创 2017-03-27 10:02:07 · 2731 阅读 · 0 评论