![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
小昊☆
这个作者很懒,什么都没留下…
展开
-
排序cpp实现
头文件#ifndef __SORint__#define __SORint__#include<vector>//生成随机数void randVec(int n, std::vector<int>& a, int max, int min);//生成n个随机数,添加到数组a中,max与min表示随机数范围//插入排序void insertSort(std::vector<int>& );//插入排序void insertSort(st原创 2021-06-14 21:52:26 · 179 阅读 · 0 评论 -
浅析new与delete工作原理及注意事项
new:先分配内存再调用构造函数当我们写出Complex* pc=new Complex(1,2);//Complex是一个复数类,此时实部为1,虚部为2编译器转化为void* men=operator new(sizeof(Complex));//分配内存,operator new是一个特殊的函数,内部调用malloc(n)pc=static_cast<Complex*>(mem);//转型pc->Complex::Complex(1,2);//构造函数delete:先原创 2021-06-13 16:15:26 · 238 阅读 · 1 评论 -
C++随机数(default_random_engine)
1.仅使用rand()生成随机数不需要引入特定头文件直接使用即可。 如 `int i=rand();`但是生成随机数的种子默认是1随机数范围是0到rand_max(int型是32767)2.使用种子来使每次生成的随机数不同(一般使用时间作为种子)所在头文件stdlib.h#include <stdlib.h>......srand(time(NULL));int i=rand();3.可以使用rand()%n来获取特定范围的随机数如%n即是模n取余操作,相应可以还有原创 2021-03-11 14:27:40 · 3885 阅读 · 1 评论 -
#pragma once与#ifndef
在C/C++中,为了避免同一个文件被include多次,有两种方式:一种是#ifndef方式,一种是#pragma once方式(在头文件的最开始加入)。#ifndef SOME_UNIQUE_NAME_HERE#define SOME_UNIQUE_NAME_HERE // contents of the header... #endif // SOME_UNIQUE_NAME_HERE#pragma once // contents of the header...#ifnd原创 2021-06-05 14:08:30 · 330 阅读 · 0 评论 -
INT_MIN、INT_MAX、FLT_MIN、FLT_MAX、DBL_MIN、DBL_MAX、 LONG_MAX、 LONG_MIN、LONG_LONG_MAX、LONG_LONG_MIN
int n1= INT_MIN; int n2= INT_MAX; float f1 = FLT_MIN; float f2 = FLT_MAX; double d1 = DBL_MIN; double d2 = DBL_MAX; long ln1 = LONG_MAX; long ln2 = LONG_MIN; long long lln1 = LONG_LONG_MAX; long long lln2 = LONG_LO...原创 2021-06-04 17:25:15 · 1410 阅读 · 0 评论 -
AVLTREE
#ifndef __MYAVLTREE__#define __MYAVLTREE__template<typename Comparable>class AvlTree;template<typename Comparable>class AvlNode { friend class AvlTree<Comparable>; Comparable elem;//元素 AvlNode* lchild;//左子树 AvlNode* rchild;//右子原创 2021-06-03 21:40:05 · 71 阅读 · 0 评论 -
AvlTree的C++实现
#ifndef AVL_TREE_H#define AVL_TREE_H#include "dsexceptions.h"#include <algorithm>#include <iostream> using namespace std;// AvlTree class//// CONSTRUCTION: zero parameter//// ******************PUBLIC OPERATIONS*********************原创 2021-06-03 21:38:46 · 181 阅读 · 0 评论 -
exit(0)、exit(1)和exit(-1)
return 是返回堆栈函数调用,exit是直接结束程序exit(0)正常退出exit(1),exit(-1)非正常退出原创 2021-06-01 21:03:10 · 306 阅读 · 0 评论 -
sizeof(),strlen(),strcmp(),strcpy(),strncpy()
sizeof与strlen(对于字符数组)sizeof是一个关键字,返回数组长度即数组所占空间strlen返回数组中’\0’之前的字符个数char s[10] = { 'a','b','c','\0','d','\0' }; cout << sizeof(s);//输出10 cout << strlen(s);//输出3strcmp根据ASCII逐位比较两个字符数组(遇到’\0’停止返回结果)返回1——第一个数组大于第二个返回-1——第一个数组小于第二个返回0—原创 2021-06-01 20:26:08 · 148 阅读 · 0 评论 -
functional
#include<iostream>#include<functional>#include<string>#include<vector>#include<algorithm>#include<map>using namespace std;int add(int i, int j) { return i + j; }struct divide { int operator()(int denominator, i原创 2021-05-28 08:43:35 · 106 阅读 · 0 评论 -
4.寻找两个正序数组的中位数
好~,自不量力的看了个困难题,第一眼,就这?暴力通通解决第二眼,还要求时间复杂度O(log (m+n))?想了想,有了点二分查找的意思,但是,奇数偶数感觉脑子有点不够用,看看题解,好家伙,看也看不懂本来写着上面的都想放弃了,以后再看,但是,第一个hard就放弃不太好吧,虽然这次以后大概率很长时间不会碰hard了虽然照着瞧出来了,但总感觉还差点意思class Solution {public: double get(vector<int>& nums1, vect原创 2021-05-19 22:15:31 · 57 阅读 · 0 评论 -
map C++Primer 关联容器一个小测试
#include<iostream>#include<string>#include<vector>#include<fstream>#include<map>#include<sstream>using namespace std;//两个参数,若第一个参数s是map的key,返回对应value,否则返回sconst string& transform(const string& s, const m原创 2021-05-19 20:06:54 · 71 阅读 · 0 评论 -
初识泛型算法
泛型算法不会执行容器操作,而是运行在迭代器上#include<iostream>#include<vector>#include<numeric>#include<iterator>using namespace std;int main() { /* *只读算法,最好使用cbegin()来操作迭代器 */ vector<int> a1(10, -1); auto p1 = find(a1.cbegin(), a1.cend(原创 2021-05-18 11:15:33 · 61 阅读 · 0 评论 -
顺序容器基本操作
#include<iostream>#include<vector>//使用vector,除非有很好的理由选择其他容器#include<string>#include<deque>//双端队列#include<list>//双向链表#include<forward_list>//(C++11)单向链表#include<array>//(C++11)固定大小数组,比内置数组更安全易操作using namespac原创 2021-05-17 16:17:05 · 48 阅读 · 0 评论 -
哈夫曼(赫夫曼)树HaffmanTree
从12点到晚上八点半,缝缝补补终于勉强写出来了,写完我自己都不想看这代码,乱七八糟,暂时的能力就在这了,虽然乱,还是有收获的先把所有代码贴在这#include<iostream>#include<vector>#include<fstream>#include<string>using namespace std;#define SIZE 126//数组固定大小#define HTNodes 251//根节点的父节点标号,以及叶节点的左右子树标原创 2021-05-16 21:03:15 · 101 阅读 · 0 评论 -
关于容器vector删除元素的几个操作
push_back,pop_back不必多说关于删除元素vector<int>list;list.clear()或者是list.erase(list.begin(),list.end())都是删除元素却不释放空间,实际对应位置内容并没有改变,联合之前系统基础所学,可知其是把这块地址内容标记为可覆盖利用list.resize(0)也可实现上述两种操作的效果使用VS2019运行可见虽然clear后监视显示对应地址仍为原来的元素但是当我们试图访问时会崩溃,个人认为此现象与编译器有关原创 2021-05-16 20:33:43 · 524 阅读 · 0 评论 -
seekg(0,ios::beg)失效
在使用循环将文件中字符输出后想将流指针定位到开头却失效问题代码while (infile.get(a)) { w[static_cast<int>(a)] += 1;}infile.seekg(0,ios::beg); //此处无效原因未知改正方法infile.clear(); infile.seekg(0,ios::beg); ...原创 2021-05-16 17:51:11 · 940 阅读 · 2 评论