
C++
东篱_
Never forget why you started,and your mission can be accomplished.
展开
-
URL中文 encode decode
url 中文 encode decode转载 2023-05-09 17:04:59 · 186 阅读 · 0 评论 -
归并排序 逆序对的实现
归并排序 逆序对的实现#include<iostream>using namespace std;long long mergeSort(int a[], int n);long long _mergeSort(int a[], int l, int r);long long merge(int a[], int l, int mid, int r);void t...原创 2018-08-23 22:04:05 · 372 阅读 · 0 评论 -
C++ 快排思想 最小的k个数、最大的k个数
C++ 快排思想 最小的k个数、最大的k个数 1、思路快速排序的思路中,有一个分块函数partition.partition函数,以升序数组a[]为例,它的作用:以a[l]为基准,将“<a[l]”的数据全部存放在 a[l]的左边,“>a[l]”的数据全部存放在 a[l]的右边。返回a[l]最终所在数组的正确索引位置。采用双路快排,从数组的两端开始,向中间推进。故:最小...原创 2018-08-28 16:51:32 · 1426 阅读 · 0 评论 -
前置++,后置++
前置++,后置++ 题目: int a = 4, b = 4, c = 4, d = 4; a += (a++); b += (++b); ++c += c; ++d += d++;测试1: int a = 4, b = 4, c = 4, d = 4; a += (a++); b += (++b); ++c += ...原创 2018-09-17 10:02:18 · 1611 阅读 · 1 评论 -
C++ 文件路径中单斜杠“\”换成双斜杠“\\”,双斜杠“\\”换成单斜杠“\”
C++ 文件路径中单斜杠“\”换成双斜杠“\”,双斜杠“\”换成单斜杠“\”1、单斜杠“\”换成双斜杠“\”//单斜杠转双斜杠void pathConvert_Single2Double(string& s){ string::size_type pos = 0; while ((pos = s.find('\\', pos)) != string::npos){ s.ins...原创 2018-10-27 15:33:24 · 12647 阅读 · 0 评论 -
C++使用数组构造链表
C++使用数组构造链表1、链表的定义struct Node{ int value; struct Node* next;};2、使用数组构造链表Node *createList_array(int *a, int n){ Node *root = new Node(); Node *pnode = root; for (int i = 0; i < n - 1; +...原创 2018-11-02 18:41:05 · 6243 阅读 · 0 评论 -
二叉树的非递归遍历——前序、中序、后序、层序、层序按行输出
二叉树的非递归遍历——前序、中序、后序、层序、层序按行输出一、自己总结归纳的二叉树的非递归遍历——前序、中序、后序、层序、层序按行输出层序和前序的程序代码特别像,只有两点差别:1、只是层序用到queue,前序用的stack2、前序先push了右孩子,再push左孩子层序先push了左孩子,再push右孩子//层序遍历void LevelOrder(BinaryTreeNode *T...原创 2018-11-27 12:55:27 · 501 阅读 · 1 评论 -
C++ 使用数组建立二叉树 层序数组(方法二)
C++ 使用数组建立二叉树 层序数组(方法二)另外一种方法:见 C++ 使用数组建立二叉树 层序数组(方法一)试验中,遍历二叉树的非递归方法 见我的另一篇博客:二叉树的非递归遍历——前序、中序、后序、层序、层序按行输出1、输入数组要求数组是按照层序输入的,当该结点为空时,用‘#’代替空的位置。2、核心代码//层序数组构建二叉树BinaryTreeNode *ConstructBina...原创 2018-11-27 13:14:38 · 3027 阅读 · 5 评论 -
C++ 模板化的student类对象的直接插入排序, 运算符重载,模板,两种模板化的交换数据函数
C++ 模板化的student类对象的直接插入排序, >、<、<<运算符重载,模板,两种模板化的交换数据函数1、student类对象(1)基本成员变量和成员函数定义:class student{private: string name; double score; int *index;public: student() :index(NU原创 2018-11-28 17:49:51 · 628 阅读 · 0 评论 -
C++ 四种数据交换的函数
C++ 四种数据交换的函数//使用异或操作实现原位数据交换//只对整数有效!!//引用+异或 方法1void myswap(int &a, int &b){ a = a^b; b = a^b; a = a^b;}//原位数据交换 不借助第三个变量//只适用于简单同种单一类型的数据(如int\float\double\char)//引用+“+-”四则运算符 ...原创 2018-11-28 18:32:57 · 4344 阅读 · 0 评论 -
mwArray的get函数用法
mwArray的get函数用法1、应用:在matlab与C++混合编程中:使用get函数将mwArray类型的数组中的数据存入vector<vector<double>> v中:mwArray a(col, row, mxDOUBLE_CLASS, mxREAL);//列优先,先列后行: 构建一个 col列 X row行 的matlab矩阵a.Get(1, co...原创 2018-12-07 13:04:03 · 4871 阅读 · 4 评论 -
CFileDialog、CStdioFile读取文件中的内容,每行按空格依次读入
CFileDialog、CStdioFile读取文件中的内容,每行按空格依次读入注:1、该文件为固定为3列的小数txt文件,且数字之间以空格隔开2、CFileDialog 与 CStdioFile 类:class CFileDialog : public CCommonDialog //afxdlgs.hclass CStdioFile : public CFile //afx.hCF...原创 2019-01-11 20:55:06 · 1083 阅读 · 1 评论 -
C++ 快排思想 求第k大的数据(3种方法)、第k小的数据(3种方法)
C++ 快排思想 求第k大的数据(2种思路)、第k小的数据(1种思路)#include<iostream>using namespace std;//找出数组中第k大的数 法1 二路快排1int quicksort_k_big1(int a[], int l, int r, int k)//从大到小排序{ if (l >= r) return a[l]; ...原创 2018-08-22 22:08:42 · 2922 阅读 · 0 评论 -
const char*与CString相互转换
const char*与CString相互转换 编译环境:vs2013 之前遇到下列错误:IntelliSense: no suitable constructor exists to convert from "char *" to "ATL::CStringT<wchar_t, StrTraitMFC_DLL<wchar原创 2018-06-25 22:01:23 · 9188 阅读 · 3 评论 -
C++判断四个点能否构成正方形(续)
在前面的文章C++判断四个点能否构成正方形 中,关于“直角边中三个点是如何选择的?”和“正方形四条边中四个点是如何选择的?”,没有进行解释,这里做了详细的讲述:I: 确定点 关系着 计算直角时三个点的选择:确定点的序号(0,1,2,3)时,无论比较函数 cmp(point,point) 怎么排序, 第3个点都是距离第0个点最远的点, 正方形中距离最远的两个点就是对角线上的两个点,...原创 2018-03-26 11:13:44 · 1522 阅读 · 1 评论 -
C++ 使用数组建立二叉树 层序数组(方法一)
用数组建立二叉树1、输入数组要求 数组是按照层序输入的,当该结点为空时,用‘#’代替空的位置。 如: 图(a)中的二叉树的 输入数组为: int data[] = { 1, 2, 3, 4, 5, ‘#’, 6, ‘#’, ‘#’, 7, 8 }; 图(b)中的二叉树的 输入数组为: int data[] = { 1, 2, 3, 4, 5, ‘#’, 6, 7 };2、数...原创 2018-04-08 20:16:13 · 7790 阅读 · 5 评论 -
C++容器适配器stack 重载默认容器类型
容器适配器stack 重载默认容器类型1、何为适配器? 标准库中的顺序容器有以下六种: vector、deque、list、forward_list、array,string。 标准库定义了三种顺序容器适配器:stack、queue和 priority_queue。 适配器是标准库中的一个通用的概念。容器、迭代器和函数都有适配器。 本质上,适配器是一种机制,能使某种事物的行为看起来像...原创 2018-04-11 11:21:58 · 666 阅读 · 0 评论 -
C++按行从屏幕上写入文件,按行读取文件到屏幕上,先写后读
C++ 逐行写入文件,逐行读取文件,先写后读1、解决的问题 将 几行整数 通过屏幕依次逐行写入到文件中, 然后再将该文件中的数据 逐行在屏幕上显示出来, 且 每一行的整数 按照一定的格式(如左对齐,每个数据后空四个字符)输出来。eg:屏幕上输入:1 2 3 w4 5 6 w7 8 9 w#文件和屏幕中显示:1 2 34 5 67 8 9...原创 2018-04-11 18:00:17 · 2039 阅读 · 0 评论 -
腾讯2018暑期实习第2题 从几首特定长度的歌曲中求指定长度歌曲的组合
题目:来源于腾讯2018实习第2题 从几首特定长度的歌曲中求指定长度歌曲的组合 其实该题目就是“求一个数组里面所有和等于m的组合”的一个变种。从 "X首长度为A的歌,Y首长度为B的歌," 中挑出 长度为a 的歌,共有多少种组合;不用管挑选的顺序原创 2018-04-05 21:14:53 · 522 阅读 · 0 评论 -
单链表之连接两个链表
1:要求 单链表L1: 1–>3–>5–>7 单链表L2: 2–>4–>6–>8 连接后: 1–>3–>5–>7–>2–>4–>6–>8 2:连接代码 单链表的结构定义如下:struct ListNode{ int m_nValue;//链表结点值 ListNode* m_pN...原创 2018-04-13 21:37:11 · 12117 阅读 · 3 评论 -
单链表 之 将该单链表中第i个位置的结点插入到第j个位置的节点之前,保持其他结点顺序不变
单链表 之 将该单链表中第i个位置的结点插入到第j个位置的节点之前,保持其他结点顺序不变 1、题目: 将该单链表中第i个位置的结点插入到第j个位置的节点之前,保持其他结点顺序不变。 输入:链表头结点,i,j 无输出。 eg: 将链表第3个结点插入到头结点之前InsertNodeIBeforeNodeJ_OK(p1,3,1);原链表:10->6->8-&...原创 2018-05-21 21:30:31 · 2321 阅读 · 0 评论 -
单链表的直接插入排序
单链表的直接插入排序 1、数组的直接插入排序void InsertSort(int *a, int len){ for (int i = 1; i < len; ++i) { for (int j = 0; j < i; ++j) { if (a[j]>a[i]) { ...原创 2018-05-21 22:07:36 · 4614 阅读 · 0 评论 -
C语言 C++两个版本 txt 文件读取结构体信息,写入结构体指针中,并以结构体指针形式返回
C语言 C++两个版本 txt 文件读取结构体信息,写入结构体指针中,并以结构体指针形式返回 附加功能:采用 直接插入排序 方法 按总成绩进行了降序排序 1、结构体信息如下:#define size 9struct student//学生信息{ long int number; char name[size]; int Chinese; int mat...原创 2018-05-27 19:02:45 · 3847 阅读 · 4 评论 -
int,char,char*,string的相互转化(共五对 类型相互转化)上
int,char,char*,string的相互转化(共10种)本文是借助了,网上的资料,对int,char,char*,string之间的转化做了比较全面的汇总,希望大家喜欢。 具体借用的地方写了链接。 1、 int 与 string //////////////////////////////////////////////////////////////////////////...原创 2018-06-23 22:07:26 · 294 阅读 · 0 评论 -
int,char,char*,string的相互转化(共五对 类型相互转化)下
int,char,char*,string的相互转化(共10种)下本文是借助了,网上的资料,对int,char,char*,string之间的转化做了比较全面的汇总,希望大家喜欢。 具体借用的地方写了链接。 2、int 与 char ////////////////////////////////////////////////////////////////////////...原创 2018-06-23 22:16:23 · 426 阅读 · 0 评论 -
子函数使用二级指针返回二维数组的值
使用二级指针返回二维数组的值 一直以来都不会将函数的结果以数组的形式返回,今天终于碰巧解决了! 函数功能:功能十分简单,实现两个二维数组的减法,并将结果以数组的形式返回。void ** SubArray(void **a, int row, int col, void **b) //返回的数据是一个 二维指针,或者 也可称为 二维数组{ //********定义二级指针********原创 2018-01-08 17:09:09 · 2285 阅读 · 0 评论