杂
欧莎
啦啦啦,啦啦啦,让我们一起洗刷刷
展开
-
C++单例模式
C++ 单例模式#include <iostream>class Singleton{private: Singleton() { std::cout << "Constructor!" << std::endl; }; Singleton(Singleton&) = delete; Singleton& operator=(const Singleton&) = delete;public: ~Sing原创 2020-11-26 19:21:01 · 241 阅读 · 0 评论 -
VS动态库调试方法
将动态库与调用动态库的程序放在同一解决方案下打开调用动态库的程序,之后在“解决方案资源管理器”中,选中“解决方案’XXX’”,之后在右键菜单中选择“添加->现有项目”,之后在“添加现有项目”对话框中选择动态库程序的vcxproj文件,如图1所示。此时就将这两个程序放在了同一解决方案下。之后,就可以在动态库中下断点进行调试了。将动态库文件拷贝到调用动态库的程序的文件夹中如果动态库与调用动态库的程序放不在同一解决方案下,可将动态库文件拷贝到调用动态库的程序的相应文件夹中。首先对这两个程序分.原创 2020-06-30 16:51:57 · 667 阅读 · 0 评论 -
C++11 std::call_once()
std::call_once()的介绍C++11引入std::call_once()函数,该函数的第二个参数是一个函数名a(),std::call_once功能是能够保证函数a()只被调用一次,该函数可以创建单例对象,具备互斥量的能力,这个函数比互斥量消耗的资源更少,call_once()需要与一个标记结合使用,这个标记std::once_flag,其实它是一个结构,call_once()就是通过这个标记来决定对应函数a()是否执行,调用call_once()成功后,call_once()就把这个标记设置原创 2020-05-26 22:25:06 · 508 阅读 · 0 评论 -
虚函数表和虚函数指针
虚函数的地址存放于虚函数表中。运行期多态就是通过虚函数和虚函数表实现的。类的对象内部会有指向类内部的虚表地址的指针(每个类用了一个虚表,每个类的对象用了一个虚指针)。通过这个指针调用虚函数。虚函数的调用会被编译器转换为对虚函数表的访问。ptr->f(); //ptr代表this指针,f是虚函数*(ptr->vptr[1])(ptr);ptr代表一个this指针,ptr指向的vptr是类内部的虚表指针。这个虚表指针会被放在类的最前方,1就是虚函数指针在虚函数表中的索引值。在..原创 2020-05-26 20:04:01 · 1882 阅读 · 0 评论 -
git 基本常用命令
git常用命令git add 命令将修改内容加入提交暂存区git add -u可以将所有修改过的文件加入暂存区git add -A 将本地删除文件和新增文件都登记到提交暂存区git commit 直接将登记在暂存区中的内容提交,先使用git log 查看commit日志,git reset --hard commit_id (commit_id指哈希值)git diff 支持二进制的...原创 2020-05-26 16:22:20 · 103 阅读 · 0 评论 -
C语言的宏定义 #if defined 的作用
一、#if defined的作用我们要检查a是否定义#if defined a #undef a #define a 200 #endif #ifndef a //如果a没有被定义 #define a 100 #endif #undef为解除定义#ifndef是if not defined的缩写,即如果没有定义上述语句检验a是否被定义,如果被定义,则用#undef...原创 2019-04-23 16:58:50 · 9139 阅读 · 2 评论 -
使用C++(VS2010控制台应用程序)连接access数据库并且把查询结果写入文本文件
记录一下,自己搞了很长的时间#include "stdafx.h"#include"targetver.h"#include <iostream>//#include<bits/stdc++.h>using namespace std;/*#import生成文件 msado15.tlh,默认是有namespace ADODB {}所有内容都包在这个名字空间中...原创 2019-04-12 16:12:00 · 1378 阅读 · 0 评论 -
C++之 freopen控制台的文件的输入输出
之前在学校出ACM的题的时候用过,后来过了两年又忘了,现在要在这里记录一下,下次再用的时候比较方便直接贴上代码#include<bits/stdc++.h>#include<iostream>using namespace std;int main(){ freopen("in.txt", "r", stdin); freopen("out....原创 2019-04-12 15:42:21 · 1186 阅读 · 0 评论 -
循环左移(2010)
请点击这里题目描述最优方法时间复杂度为O(n),空间复杂度O(1);void Reverse(int R[],int from,int to) //逆置数组{ int i,temp; //额外空间 for(i=0;i<(to-from+1)/2;i++) { temp=R[from+i]; R[from+i]=R[to-1]; ...原创 2018-10-20 17:53:17 · 508 阅读 · 1 评论 -
线性表问题
线性表中元素递增有序且按顺序存储于计算机内,要求设计一算法完成用最少的时间在表中查找数值为x的元素,若找到将其与后继位置相交换,若找不到将其插入表中并使表中元素仍然递增有序二分查找int BinarySearch(Elemtpy x){ int mid,low=0,higt=n-1; while(low<=high) { mid=(low+higt)>>1; i...原创 2018-10-20 16:51:41 · 404 阅读 · 0 评论 -
删除数组中重复元素
一 题目描述长度为n的顺序表,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为数据X的数据元素。void del_x(Sqlist &L,Elemtype x){ int k=0; for(int i=0;i<L.lenght;i++) { if(L.data[i]!=x) L.data[k++]=L.data[i]; }...原创 2018-10-20 16:32:04 · 2633 阅读 · 0 评论 -
求中位数
题目描述题目描述2n个数需要则中位数为第n个数方法:有序归并两序列,直接找出中位数关键代码int i=0,j=0,k=0;for(i=0,j=0,k=0;i&lt;=end1&amp;&amp;j&lt;=end2;k++) if(A[i]&lt;=B[j]) c[k]=A[i++]; //将较小者复制到C中 else c[k]=B[j++]; while(i&lt原创 2018-10-20 16:02:42 · 609 阅读 · 0 评论 -
std::ios::sync_with_stdio(false); cin.tie(0);
我们都知道C++的运行速度不如C的,那么主要的原因是C++的输入输出流兼容了C的输入输出,因此,C++的速度才会变慢,如果我去掉C++的输入输出的兼容性的话,速度就可C的差不多了,大家可以实验一下#include<iostream>using namespace std;int main(){ std::ios::sync_with_stdio(false); cin.tie(0);原创 2017-09-29 17:37:04 · 3532 阅读 · 1 评论 -
strftime()函数用法
我做了一个dll想调用CTime类,mfc动态链接库中不能使用CTime类,因为它使用了Windows动态链接库不支持的strftime函数。只好用转载 2017-04-10 21:11:47 · 6319 阅读 · 0 评论