
C++基础知识
Wayward:)
此人貌似不太懒,写了点东西~
展开
-
C++中的内存操作
1. memcpy#include<string.h>void* memcpy(void* dest , void* src, unsigned int count)将源地址src指向内存区域的count个字节赋值到dest为起始地址的内存区域src和dest所指内存区域不能重叠,函数返回指向dest的指针注意,对象不能是简单的内存拷贝,例如C++中STL的字符串类型st...原创 2019-10-24 15:33:44 · 820 阅读 · 0 评论 -
C++基础之printf()输出整数注意事项
1. 各类型所占字节在C语言中,常用的整数类型有short、int、long (int)、long long,其所占用字节如下:类型字节short2int4long4/8 (取决于32位/64位机器)long long8可以看到long占用的字节不低于int。2.各类型的格式符类型格式short%hdint%...原创 2019-10-15 20:12:08 · 4470 阅读 · 0 评论 -
C++中STL容器之动态数组——vector
1.vector与数组数组和向量都可以用来存储元素列表,向量可以用来替换数组,且比数组更灵活(类vector包含很多成员函数)。但是,如果列表大小固定,则使用数组会更加高效。关于数组和向量的不同和相似之处如下表所示:操作数组向量创建一个数组/向量string a[10]vector&amp;amp;amp;lt;string&amp;amp;amp;gt; v访问一个元素a[index]v[index]...原创 2019-02-22 16:16:26 · 990 阅读 · 0 评论 -
C++中STL容器之双向链表——list
文章目录1.list介绍2.list的成员函数2.1 构造、拷贝和析构函数2.2 非变动性操作2.3 赋值操作2.4 元素存取操作2.5 迭代器相关函数2.6 插入元素2.6 移除元素2.7 特殊变动性操作2.8 排序和翻转操作3.应用实例参考资料1.list介绍list 是顺序容器的一种,且list 是一个双向链表(double linked list)。双向链表的每个元素都有两个指针域,一...原创 2019-02-23 23:27:33 · 862 阅读 · 0 评论 -
C++中STL容器之队列——queue
1.队列(queue)的简单介绍和栈相反,队列(queue)是一种先进先出(first in first out,缩写为FIFO)线性表。它只允许在在表的一端进行插入,称之为队尾(rear),而在另一端删除元素,称为队头(front)。这话我们生活中的排队思想是一致的,最早进入队列的元素最早离开。一般的队列示意图如下:2.队列的基本用法2.1 头文件#include&lt;queue&...原创 2019-02-23 17:00:50 · 1541 阅读 · 0 评论 -
C++中STL容器之双端队列——dequeue
1.双端队列介绍双端队列(dequeue) 与vector很类似,采用线性表顺序存储结构。但与vector有区别:deque采用分块的线性存储结构来存储数据,每块的大小一般为512B,将之称为deque块;所有的deque块使用一个map块进行管理,每个map数据项记录各个deque块的首地址;这样的话,deque块在头部和尾部都可以插入和删除,而不需要移动其他元素。1.使用pus...原创 2019-02-23 19:27:12 · 2595 阅读 · 0 评论 -
C++中STL容器之优先队列(堆排序)——priority_queue
1.优先队列的介绍priority_queue 是“优先队列”。它和普通队列的区别在于,优先队列的队头元素总是最大的——即执行 pop 操作时,删除的总是最大的元素;执行 top 操作时,返回的是最大元素的引用。即默认队列头部的元素优先级最高,所以只能访问第一个元素。一般的优先队列结构如下图:值得注意的是:上图中显示元素的方式反映了它们被检索的顺序。在 容器vector 中它们也可以...原创 2019-02-24 11:32:41 · 1582 阅读 · 0 评论 -
C++中STL容器之栈——stack
1.栈(stack)基本介绍栈是限定在仅在表尾进行插入或删除操作的线性表,表尾端称为栈顶(top),表头端称为`栈底(bottom)。栈的修改是按后进先出的原则进行的,所以,栈又称为后进先出(last in first out)的线性表(简称LIFO结构)。使用栈必须包含头文件#include <stack>一般的栈如下图所示,它的特点可用图3.1(b)所示的铁路调度站形象...原创 2019-02-23 16:37:17 · 363 阅读 · 0 评论 -
C++中STL容器之集合——Set/multiset
1.set简单介绍set跟vector差不多,它跟vector的区别就是,set里面的元素是有序的且唯一的,只要你往set里添加元素,它就会自动排序,而且,如果你添加的元素set里面本来就存在,那么这次添加操作就不执行。set类包含在头文件#included&amp;amp;lt;set&amp;amp;gt;中。简单示例:#include&amp;amp;lt;iostream&amp;amp;gt;#include&原创 2019-02-22 22:31:32 · 648 阅读 · 0 评论 -
C++中STL容器之映射——map/multimap
文章目录1.map的基本介绍2.map/multimap的基本方法2.1 构造、拷贝和析构2.2 非变动性操作2.3 赋值操作2.4 特殊搜寻操作2.5 迭代器相关函数2.6 插入(insert)元素2.7 移除元素2.8 示例代码3.应用参考资料1.map的基本介绍map提供了“[]”运算符,使得map可以像数组一样使用,所以map也称为`“关联数组”;map使用平衡二叉树管理元素ma...原创 2019-02-22 23:53:31 · 654 阅读 · 0 评论 -
C++中STL容器之哈希容器
文章目录1. 介绍2.常见容器3.unorder_map()3.1 构造函数3.2 成员函数4. unorder_set()1. 介绍前面介绍的 map/multimap、set/multiset底层都是基于红黑树实现的,复杂度大致在O(logn)O(logn)O(logn),本次介绍的容器底层都是基于哈希(hash)表,具有很快的映射速度。基于哈希表,数据的插入和查找的时间复杂度都很低,几...原创 2019-10-06 18:44:54 · 1248 阅读 · 0 评论 -
C++中STL算法之排序算法——sort
文章目录1.排序算法介绍1.1 对所有元素进行排序1.2 局部排序1.3 自带的一些比较准则2.排序算法的常见用法2.1 标准元素的排序2.2 自定义的元素排序2.2.1 写比较函数1.排序算法介绍STL提供的排序算法主要包含以下几个:函数名功能描述sort()对给定区间所有元素进行排序stable_sort()对给定区间所有元素进行稳定排序,即保持想等元素间的...原创 2019-02-25 09:34:33 · 2073 阅读 · 0 评论 -
C++基础之C字符串和String
C字符串在C语言中非常流行,但是被C++中更健壮、更方便、更有用的string类型替代了。1.C 字符串C字符串是一个字符数组,以’\0’空终结符结尾,显示了内存中的字符串是如何结尾的。每一个字符串值都是一个C字符串,因此可以声明一个数组并用字符串值来初始化它。char city1[8] = &amp;quot;Beijing&amp;quot;; // C-stringchar city2[] = {'B','e','...原创 2019-03-06 17:41:55 · 1268 阅读 · 0 评论 -
C/C++中输入输出函数——scanf/printf
在C++中,scanf函数用于输入,printf函数用于输出,且比cin和cout处理大量数据更加省时。1.printf函数printf称为格式化输出函数,私认为在调整输出的方面比C++中标准输出输出cout函数好用,并且更加高效。函数原型:int printf(const char * format, [,argument] );printf函数是一个&quot;可变参数函数&quot;(即函数参数的个...原创 2019-02-25 19:17:35 · 3328 阅读 · 0 评论 -
C语言中使用scanf()对字符(串)进行输入的问题
1. 输入字符串#include<stdio.h>int main() { int a; char s1[100]; char s2[100]; scanf("%d", &a); scanf("%s", s1); scanf("%s", s2); printf("a = %d\n", a); printf("s1 = %s\n", s1); prin...原创 2019-10-05 19:28:53 · 784 阅读 · 0 评论 -
C++基础之函数指针
文章目录1.简介2. 用法2.1 声明2.2 函数调用2.3 函数参数1.简介函数指针 本身是一个指针变量,与指向整数的指针int* a类似,只不过它指向的是一个函数。C语言编译的时候,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。其一般有两个用途:调用函数和做函数的参数。2. 用法2.1 声明与 数组指针 的声明一样,函数指针的声明也需要括号 (因为算符优先级的...原创 2019-10-07 14:25:18 · 531 阅读 · 0 评论 -
C++程序测试(随机数生成+时间记录)
文章目录1.随机数生成1.1 随机数发生器 rand()1.2 随机数种子2.时间记录2.1 clock()计时函数2.2 每秒的时钟单元数3.程序正确性证明1.随机数生成1.1 随机数发生器 rand()包含在头文件<stdlib.h>中的函数rand()可生成一个随机数,其有以下特点:其形式 int rand(void) 内部使用线性同余法产生随机数,是“伪随机数”,只不...原创 2019-10-08 23:16:29 · 1909 阅读 · 0 评论