c++
三丰杂货铺
这个作者很懒,什么都没留下…
展开
-
Qt杂谈小技巧集锦()如何高效储存以及读取数据
高效储存以及读取数据建议使用序列化的方式。也就是说不要用ascii的方式,储存空格等方式,读的时候从文件读,还需要弄明白每一个元素的类型。直接将所有变量,比如 Qmap<>这样的类型,以二进制的方式,储存到文件中,这样的文件无法打开查看内容,但是却可以读写非常快,到qt中,而且不会损失精度,就是那个变量。...原创 2022-03-07 21:48:51 · 1055 阅读 · 1 评论 -
qt-bug-no member named ‘exec‘ in
no member named ‘exec’ in没有成员函数,注意你使用的如果是widget界面就会找不到这个函数。需要使用diaglog界面,存在exec()原创 2022-01-07 08:56:38 · 1651 阅读 · 0 评论 -
qt串口助手
qt串口助手界面文件树qmake版本:cmake版本:步骤原创 2022-01-07 08:55:24 · 361 阅读 · 0 评论 -
C语言攻破面试指针运算及数组
有c语言基础就从老外的第3节开始看。指针指针强类型指针是强类型的,也就是说,需要知道这个指针是存的什么类型的地址,虽然就是一个8位的数来表示整数。但是解引用的时候,需要知道要几个字节算一个数据。同时,还和大端模式,小端模式有关系。指针运算指针运算,p++ p+5等表达式,到底加了几个字节呢?p++: p的地址增加了 1 * sizeof(*p)个字节p + 5: p的地址增加了5 * sizeof(*p)个字节void*泛型指针,万能指针。int* p;char* q原创 2021-08-30 16:26:09 · 137 阅读 · 0 评论 -
SOFT3410-系统编程中的C语言
文章目录Core Dump/Segmentation Fault1 指针1.1 悬浮指针Dangling pointers1.2 野指针wild pointer1.3 指针和数组1.3.1 指针和算法内存2.1 函数调用栈2.2 堆2.2.1 void *malloc(size_t size);2.2.2 void *calloc(size_t num, size_t size);2.2.3 void free(void *ptr);2.2.4 内存泄露2.2.5 void *realloc(void *p原创 2021-08-28 12:10:55 · 290 阅读 · 0 评论 -
c/c++中的Core Dump/Segmentation Fault
错误发生的原因是:想要读写到“不属于你的内存”。主要有六种出错的方式:修改某字符串字面量,而不是某字符串变量,例如"adfsd"(试图写只读区域)获取已经释放了的内存(编译器不允许)数组越界(极其常见)scanf()错误使用(将输入给到了一个无效的内存)栈溢出(递归太多,函数局部数组定义太长等)对一个没有初始化的指针进行解引用操作。(int * p; int c = *p;)...原创 2021-08-27 20:41:49 · 272 阅读 · 0 评论 -
c++中std操作
文章目录stdstd原创 2021-08-20 16:25:19 · 924 阅读 · 0 评论 -
c++智能指针
raw pointer原指针原指针就是正常的指针:type * pointer_name = & variable_name;智能指针一种包括堆区原指针的对象,用来更好管理对象的生命周期。C++11最佳实践Also note the use of ‘nullptr’ in C++ instead of NULL...原创 2021-08-20 16:25:04 · 107 阅读 · 0 评论 -
c++匿名lambda函数(c++11)
文章目录格式应用参考链接格式Lambda表达式完整的声明格式如下:[capture list] (params list) mutable exception-> return type { function body }各项具体含义如下capture list:捕获外部变量列表params list:形参列表mutable指示符:用来说用是否可以修改捕获的变量exception:异常设定return type:返回类型function body:函数体应用该代码测试按照元音原创 2021-08-19 21:30:38 · 147 阅读 · 0 评论 -
c++ - new和delete
文章目录c++中的对象创建和释放c++中的对象c++的所有数据,包括基本变量如int,都是对象。而Java的基本数据类型不是对象。对象是和某类型有关的区域。有3种方法可以让c++中的对象具有超过了它的定义范围的生命周期。通过复制从函数中返回它(可能有限制)通过引用从函数中返回它(不好,见下面的幻灯片)将其作为堆资源从函数中返回(今天的课)也就是new和delete创建和释放需要在堆中创建,然后手动释放。使用new创建,会调用该对象的构造函数。所以用法类似使用类创建对象。加一个原创 2021-08-16 18:27:47 · 121 阅读 · 0 评论 -
c++左值和右值
文章目录左值lvalue右值rvalue左值右值的转换左值引用右值引用原文地址左值lvalue有具体地址,可以通过地址访问的对象。(以后可能都不应该说变量了。应该c++中的所有变量都是对象,连int都有构造函数的)原本所有的左值都可以被赋值(=左边),自从有了const,出现了不可修改的左值。右值rvalue不是左值的对象都是右值。可以认为右值不在内存中具有地址,暂时储存在寄存器中。左值右值的转换左值可以转右值:int a = 1; // a is an lvalueint b原创 2021-08-16 17:31:46 · 734 阅读 · 0 评论 -
c++运算符重载
文章目录友元函数重载:复合赋值Operator pairings自增自减运算符的重载c++20,spaceship operatorNote:Only create an overload if your type has a single, obviousmeaning to an operator友元函数一种全局函数,可以在类里声明,其他地方定义。或者在类里定义生命。但是这个友元函数,不是类的成员。用的时候直接用,但是可以接触类的所有权限的变量。对于,重载操作符来说,可以把一些重载体函数定义原创 2021-08-13 17:12:15 · 341 阅读 · 3 评论 -
c++异常
文章目录错误类型异常框架原则:捕获为常引用rethrow(嵌套异常)Exception safety levelsNo-throw guaranteeStrong exception safetyWeak exception safetyNo exception safetynoexcept specifier错误类型异常为了处理运行时错误和逻辑错误#include <exception> for std::exception object#include <stdexcept&原创 2021-08-13 16:47:27 · 483 阅读 · 0 评论 -
c++- Const class objects and member functions
文章目录常对象常函数最佳实践常对象首先可以定义一个类,在使用这个类的时候,创建一个常对象。那么这个对象的任何变量都不可以改变(在调用构造函数之后)。任何想要改变对象内属性的操作,都将引来编译错误。(包括直接改变public 变量以及调用改变变量的函数)。class Something{public: int m_value {}; Something(): m_value{0} { } void setValue(int value) { m_value = val原创 2021-08-13 12:53:28 · 118 阅读 · 0 评论 -
c++类构造函数
文章目录委托构造函数delegating constructorexplicit委托构造函数delegating constructor其实最好使用默认参数值default value,代替重载以及委托构造函数。委托构造函数可以减少代码量#include <string>class dummy {public:explicit dummy(int const& i) : s_{"Hello world"}, val_{i} {}explicit dummy() : du原创 2021-08-13 12:39:12 · 154 阅读 · 0 评论 -
c++类和结构体的区别
实际上c++的类,最后也是转为结构体实现的。主要区别:All members of a struct are public by defaultAll members of a class are private by default在什么情况下使用:We use structs only when we want a simple type with little or no methodsand direct access to the data members (as a matter o原创 2021-08-13 11:55:48 · 209 阅读 · 0 评论 -
c++ - This指针
一般情况下,不用This指针,而是加后缀suffix_来表示某变量是类内部变量.#include <iostream>class myclass {public:myclass(int i) {i_ = i;}int getval() {return i_;}private:int i_;};int main() {auto mc = myclass{1};std::cout << mc.getval() << "\n";}改变后:#原创 2021-08-13 11:52:27 · 71 阅读 · 0 评论 -
C++命名空间(namespace)
域scope一个变量的域就是程序的某个部分可以使用这个变量,离开这个区域,变量就消亡了。用{}来标识命名空间namespace命名空间就是有名字的域,里面按照正常情况定义了变量函数类等等。命名空间主要是为了防止命名冲突。嵌套命名空间nestedstd::string::nopsUnnamed namespacesc语言static的函数只能在本文件中使用,c++可以利用unnamed namespace实现该功能。namespace word_ladder { namespace原创 2021-08-13 11:48:19 · 187 阅读 · 0 评论 -
C++ - STL
文章目录c++style 迭代vectormap迭代器流迭代器(按空格读取文件的数据)容器分为顺序容器(没排序,按顺序放的)还有Ordered Containersc++style 迭代#include <array>#include <iostream>int main() {// C-style. Don't do this// int ages[3] = { 18, 19, 20 };// for (int i = 0; i < 3; ++i) {//原创 2021-08-12 16:15:52 · 252 阅读 · 0 评论 -
c++高级特性
和硬件相关的数据类型Remember that C++ runs directly on hardware, which means thevalue of some types may differ depending on the system.An example of a library you can include to display these are below:#include <iostream>#include <limits>int main()原创 2021-08-12 12:14:13 · 316 阅读 · 0 评论 -
c++不该使用的c的特性
cppreference.com很好的参考网站不该使用:cplusplus.com原创 2021-08-07 22:00:25 · 126 阅读 · 0 评论