C++
张大饼的最爱
这个作者很懒,什么都没留下…
展开
-
C++ 如何使用结构体作为map的key
#include <iostream>#include <string>#include <map>using namespace std;struct StructTest{ std::string str1; std::string str2; double diameter; double length; StructTest() : str1(""), str2(""), diameter(0.), length(0.) {} S..原创 2021-10-27 17:54:19 · 3514 阅读 · 0 评论 -
图像增强
image enhancement: 根据某种应用的需要,人为地突出输入图像中的某些信息,而抑制或消除另一些信息的处理过程。目的:输出图像有更好的图像质量,改善其视觉效果;或更易于被人眼察觉;或更有利于进行图像分析及识别等后续处理主要包括:直方图修改、图像平滑、图像边缘锐化、伪彩色增强等。【直方图增强】histogram enhancement \原创 2017-03-03 23:09:01 · 776 阅读 · 0 评论 -
C++ 数据结构 二叉树操作
基本知识点不讲了,直接说遍历问题:前序遍历:根节点->左子树->右子树中序遍历:左子树->根节点->右子树后序遍历:左子树->右子树->根节点原创 2017-02-25 01:15:41 · 1132 阅读 · 0 评论 -
C++字符串格式化 sprintf、printf
【区别】由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [, argument] ... );除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数转载 2017-05-28 00:20:52 · 9979 阅读 · 0 评论 -
error C2248: ***: 无法访问 private 成员 可能出现的错误方向
一般都是某类没有赋值构造函数或者拷贝构造函数。就比如说传参数时该类的变量需要引用!原创 2017-05-10 16:34:26 · 2632 阅读 · 1 评论 -
C++11 unordered_map
【map 与 unordered_map 的区别】std::map对应的数据结构是红黑树。红黑树是一种近似于平衡的二叉查找树,里面的数据是有序的。在红黑树上做查找、插入、删除操作的时间复杂度为O(logN)。而std::unordered_map对应哈希表,哈希表的特点就是查找效率高,时间复杂度为常数级别O(1), 而额外空间复杂度则要高出许多。所以对于需要高效率查询的情况,使用std::unor...原创 2018-04-21 19:01:18 · 574 阅读 · 0 评论 -
C++1x - auto
auto i = 5; int array[] = {1,2,3,4,5}; for (auto &x :array) { cout << x << endl; } cout << "-----------------------" << endl; // vec...原创 2018-07-25 13:36:09 · 321 阅读 · 0 评论 -
C++1x: unique_ptr
指向的指针的生命周期是有限的,除了生命周期范围外将会被释放(调用该指向类型的析构函数)。unique_ptr没有copy构造函数,不支持普通的拷贝和赋值操作。 int main() { // 创建一个unique_ptr实例 unique_ptr<int> pInt(new int(5)); unique_ptr<int> pInt2...原创 2018-07-20 17:02:41 · 253 阅读 · 0 评论 -
C++1x - Lambda 表达式 (学习笔记)
现在很多语言都支持匿名函数。 直接看 https://msdn.microsoft.com/zh-cn/library/azure/dd293608(v=vs.110).aspx 有点不太懂。 Lambda 表达式的基本语法如下: [捕获列表](参数列表 可选) mutable(可选) 异常属性 -> 返回类型 { // 函数体} 所谓捕...转载 2018-07-31 17:47:15 · 376 阅读 · 0 评论 -
C++ error: 常有的问题锦集
【error LNK2019: unresolved external symbol "public: __cdecl MyClass::MyClass(void)" referenced in function ""】当前的多数c++编译器,模板函数和模板类不能像普通函数和普通类那样把函数或成员函数的声明放在头文件,函数实现放在cpp文件,而使用模板类/函数的cpp只需要包含头文件.使用...原创 2018-08-10 16:08:52 · 315 阅读 · 0 评论 -
STL 拆分、排序算法
算法是线性时间的:Partition头文件 <algorithm>函数功能: 根据指定的函方法重新排列数组、向量的等。指定的方法一定是一个一元函数,并且返回值是true : bool pred(const Type &a);返回值是一个迭代器指向的是排序后的第二个队列的第一个元素 (Iterator to the first element of the ...原创 2018-09-05 16:08:14 · 951 阅读 · 0 评论 -
C++ 字符串流sstream
库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。stringstream 是字符串流,可以用来作数据切分或者类型转化。 1.stringstream::str(); returns a string object with a copy of the current con原创 2017-02-24 11:28:08 · 877 阅读 · 0 评论 -
C++ 指针概念汇总
常量指针和指针常量原创 2017-02-24 11:11:22 · 457 阅读 · 0 评论 -
CMarkup简单快速的C++ XML解析器
下载 Release 11.5 zip (579k)C++ source code for Linux, Mac, Windows使用: 将 Markup.cpp 和 Markup.h文件加入到C++工程中 【注意:预编译头问题: 在 Markup.cpp 文件开始的位置添加 #include "stdafx.h"另外还需要考虑是否添加其他宏命令】X原创 2016-08-03 17:19:32 · 880 阅读 · 0 评论 -
C++ 学习笔记:不知道的运算符和未知的知识点
dynamic_cast:动态类型转换 static_cast:静态类型转换 reinterpret_cast:重新解释类型转换 reinterpret_cast可以转换任意一个32bit整数,包括所有的指针和整数。可以把任何整数转成指针,也可以把任何指针转成整数,以及把指针转化为任意类型的指针,威力最为强大!但不能将非32bit的实例转成指针。总之,只要是32bit的原创 2016-08-08 17:16:00 · 373 阅读 · 0 评论 -
C 指针常识的小结
【常见错误】指针未初始化,就进行取值操作;对一个NULL指针取值;传参~参数为NULL指正;指针表达式的错误,++ 或者 --等越界,对一个指针进行减法运算,非法地指向了数组的第一个元素前面的内存位置【为什么C语言中没有一种方法来声明字面值指针常量呢?】这个问题需要分两种情况讨论,1、一般情况 通常,c语言中并没有提供一种语法,供程序员声明一个“指针常原创 2016-09-01 14:44:05 · 452 阅读 · 0 评论 -
循环嵌套时, 要把大循环写在内, 小循环写在外
>转载 2016-09-01 16:20:23 · 4185 阅读 · 0 评论 -
STL里的multimap使用简介
在“使用 库创建关联容器” 一文中,我们讨论了标准库中的 map 关联容器。但那只是 map 容器的一部分。标准库还定义了一个 multimap 容器,它与 map 类似,所不同的是它允许重复键。这个属性使得 multimap 比预想的要更有用:比如在电话簿中相同的人可以有两个以上电话号码,文件系统中可以将多个符号链接映射到相同的物理文件,或DNS服务器可以将几个URLs映射到相同的IP地址转载 2016-09-19 13:47:42 · 352 阅读 · 0 评论 -
c语言性能优化—使用寄存器变量
c语言性能优化—使用寄存器变量当对一个变量频繁被读写时,需要反复访问内存,从而花费大量的存取时间。为此,C语言提供了一种变量,即寄存器变量。这种变量存放在CPU的寄存器中,使用时,不需要访问内存,而直接从寄存器中读写,从而提高效率。寄存器变量的说明符是register。对于循环次数较多的循环控制变量及循环体内反复使用的变量均可定义为寄存器变量,而循环计数是应用寄存器变量的最好候选者。转载 2016-09-19 16:35:19 · 1590 阅读 · 0 评论 -
C/C++ 动态内存分配常见的错误
动态内存分配常见的错误(好像之前写过类似的文章)① 对 NULL 指针进行解引用② 对分配的内存进行操作时越界③ 释放并非动态分配的内存④ 试图释放一块动态分配的内存的一部分⑤ 一块动态内存被释放之后被继续使用⑥ 忘记检查所请求的内存是否成功分配【解决方案】 申请完内存之后可以进行非NULL判断内存泄漏 mem原创 2016-09-21 16:00:01 · 666 阅读 · 0 评论 -
字符串常量 == 指针常量
当一个字符串常量出现于表达式中时,它的值是个指针常量。"xyz" + 1 : 表示y*"xyz" : 表示x"xyz"[2] : 表示zprintf("%s\n", "******************" + n); 表示从第n个星号开始打印。原创 2016-09-26 14:58:35 · 638 阅读 · 0 评论 -
error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
环境:QT + VTK + VS2010 64位配置环境就配了一天了,我勒个去,遇到这个问题也是醉了,最后的最后才发现原来是QT的版本不对,应该也是选用54位的,我也是服了我了,怎么能这么蠢啊原创 2016-11-07 17:26:55 · 1635 阅读 · 0 评论 -
C++如何求一个十进制数转化为二进制数之后1的个数
十进制转二进制:用2辗转相除至结果为1 ,也就是说要至除2的余数为0int Count(int x){ int icount = 0; while (x != 0 ) { icount ++; x = x & (x - 1); }}原创 2017-02-28 17:12:37 · 3298 阅读 · 0 评论 -
关于出现Unhandled exception at 0x091f11c7 in ****: 0xC0000005: Access violation reading location 0x0ab0f
原文地址崩溃信息Unhandled exception at 0x091f11c7 in : 0xC0000005: Access violation reading location 0x0ab0f6cc.这样的崩溃信息,从字面上看, 就是 0xC0000005 这个地址的东西是不允许访问的。至于什么情况下会出现这个错误呢? 之前问过一个这样的问题,当时转载 2016-07-28 17:42:35 · 11239 阅读 · 0 评论