C++_迭代器&范围for的本质
迭代器(iterator)什么是迭代器迭代器与容器的关系,相当于指针与数组的关系 因为容器是封装起来的,不知道内部是如何实现的,所以通过在内存中的地址的原理访问和遍历容器,一般来说是不实际的 要访问容器(顺序容器、关联容器)中的元素,就需要通过迭代器进行;就如同访问数组中的元素需要通过指针进行一样 用迭代器访问元素的操作也和用指针访问数组的操作很像 迭代器按照定义方式分成以下四种 正向迭代器,定义方法如下: 1容器类名::iterator 迭代器名; 常量正向迭代器,定义方法如下: 1容器类名::const_iterator 迭代器名; 反向迭代器,定义方法如下: 1容器类名::reverse_iterator 迭代器名; 常量反向迭代器,定义方法如下: 1容器类名::const_reverse_iterator 迭代器名; 迭代器用法示例通过迭代器可以读取它指向的元素,*迭代器名就表示迭代器指向的元素。通过非常量迭代器还能修改其指向的元素。 迭代器都可以进行++操作。反向迭代器和正向迭代器的区别在于: 对正向迭代器进行++操作时,迭代器会指向容器中的后一个元素; 而对 ...
static放置的位置
在声明函数时,如果需要用静态关键字static,应该放到函数类型前面还是后面? 通义千问的回答:建议放到返回类型的前面在C++中,static关键字可以用于多种上下文,包括函数声明。当用于类的成员函数时,static的位置(放在返回类型前面还是后面)并不会改变其语义,但通常有约定俗成的放置位置。 放置位置 放在返回类型前面:这是最常见的用法,也是推荐的做法。 1234class MyClass {public: static void myStaticFunction();}; 放在返回类型后面:虽然语法上是允许的,但这样做并不常见,并且可能会降低代码的可读性。 1234class MyClass {public: void static myStaticFunction();}; 语义上的区别无论static放在哪里,它都表示该成员函数属于类本身而不是类的任何特定对象。这意味着: 你不需要创建类的实例就可以调用静态成员函数。 静态成员函数不能访问非静态成员变量或非静态成员函数,因为它没有隐式的this指针。 静态成员函数只能 ...
QString与QByteArray的区别与用途
通义千问的回答: QByteArray 和 QString 都是 Qt 框架中用于处理文本和二进制数据的类,但它们的设计目的和服务的场景有所不同。 QByteArray 类型:QByteArray 用来存储原始字节(raw bytes),可以包含任意二进制数据。 编码:它不假定任何特定的字符编码。你可以使用它来处理任何类型的二进制数据,包括图像、音频文件或网络协议中的数据包等。 性能:由于直接操作内存中的字节,对于需要高效处理的数据,QByteArray 提供了较高的性能。 API:提供了许多与 C 字符串兼容的方法,比如 data() 返回一个指向内部数组的指针,使得它可以方便地与其他C API进行交互。 用途:适合于网络编程、文件I/O、图像处理等需要处理非文本数据的情况。 QString 类型:QString 是专门设计来处理文本字符串的类。 编码:默认情况下,QString 使用 UTF-16 编码(在某些平台上可能使用 UTF-8)来存储文本,这意味着它可以有效地处理 Unicode 文本,支持多种语言和特殊符号。 功能:提供了丰富的字符串操作方法,如搜索、替换 ...
Typora+PicGo图床+阿里云OSS配置
首先购买阿里云OSS服务 完成之后,打开RAM访问控制 点击 用户-创建用户 创建用户登录名称和显示名称 完成进入相关用户 点击“创建AccseeKey” 将信息保存下来 之后点击 权限管理-新增授权 选择 整个云账号-授权主体 在“系统策略”里选择以下内容 点击确认,完成 打开Typora 打开设置,选择”插入图片时……” 按照一下进行勾选 在“上传服务设定”中选择PicGo,如果没有安装则进行下载,并在Typora中配置好路径 打开PicGo 按照如下进行配置,前两项是在阿里云创建的AccessKey给出的信息 三四项根据阿里云OSS存储中自己设定好的的Bucket和存储区域来,或者直接按实例进行填写 存储路径按照阿里云OSS中填写 回到Typora刚才的页面,点击“验证图片上传选项” 返回结果为成功则说明配置完成
Hexo自动化提交-gulp压缩静态资源
1234hexo cleanhexo generategulp #进行css压缩hexo deploy 或 hexo server 关于gulpgulp可以对于网站静态文件进行压缩,缩小网站静态体积,加快加载速度 Hexo-gulp压缩静态资源加快加载速度 | 浴巾的贼船 (chunyujin.top) 命令精简使用了gulp时候,构建发布需要四个命令: 1234hexo cleanhexo ggulphexo deploy 自动化-很好用这四个命令,可以都写在package.json。直接替换文件中对应位置的代码即可 1234"scripts": { "build": "hexo clean && hexo g && gulp", "deploy": "hexo clean && hexo g && gulp && hexo deploy"} 构建只需要执行npm run ...
Hexo-gulp压缩静态资源加快加载速度
文章来源:使用gulp压缩博客静态资源 | Akilarの糖果屋 1.安装Gulp插件:在博客根目录打开终端,输入: 12npm install --global gulp-cli #全局安装gulp指令集npm install gulp --save #安装gulp插件 2.安装各个下属插件以实现对各类静态资源的压缩: 压缩HTML: 123npm install gulp-htmlclean --save-devnpm install gulp-html-minifier-terser --save-dev# 用gulp-html-minifier-terser可以压缩HTML中的ES6语法 压缩CSS: 1npm install gulp-clean-css --save-dev 压缩JS: 1npm install gulp-terser --save-dev 压缩字体包: 1npm install gulp-fontmin --save-dev 3.为Gulp创建gulpfile.js任务脚本。在博客根目录下新建gulpfile.js并打开,输入 ...
Windwos生成gif工具ScreenToGif
ScreenToGif - Record your screen, edit and save as a gif, video or other formats 优点:支持截动图之后进行帧的修改 教程:Windows截取gif动态图的软件 ScreenToGif 的安装、使用教程_screentogift-CSDN博客
Qt-qrc机制
Qt导入照片等资源的三种方式 绝对路径 123456789101112131415Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget){ ui->setupUi(this); QIcon icon("D:/document/code/QT/LEARNING/QWidget_7/143894.jpg");//直接在栈上创建,而不是在堆上 //之前推荐在堆上创建,主要是因为要确保当前空间的生命周期是足够的,要通过Qt对象树来释放对象。 //QIcon自身是一个比较小的对象,创建出来了之后,就是要设置到某个QWidget里面,QIcon对象本身是否释放,都不影响最后的显示 //另一方面,QIcon不支持对象树 this->setWindowIcon(icon); //setWindoewIcon和setWindowTitle一样,也是顶层窗口设置才有效} 相对路径 1234567 ...
Qt信号与槽
信号与槽信号源发出(某种类型的)信号,由槽接收信号,并执行对应的信号处理方式 步骤: 将槽与信号关联起来 编写好对于信号的响应行为/处理方式(槽) 触发信号,槽接收到,执行设定好的处理方式 connectQObject提供的静态的成员函数,用于将信号和槽进行关联 Qt中提供的这些类,本身是存在一定的继承关系的 原型 12345678910connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)//sender:信号源,信号是由那个空间发送出来的//signal:发送的信号(信号函数);函数指针//receiver:槽,也就是信号接收对象,处理信号的对象(控件)//method:接收信号的槽函数,处理信号的对象提供的处理方式(成员函数);函数指针//type:用于指定关联方式,通常不需要手动 ...
Qt-解决MSVC下编码警告&中文输入乱码
如果MSVC编译时, 或者 在pro文件最下面加入: 1234msvc { QMAKE_CFLAGS += /utf-8 QMAKE_CXXFLAGS += /utf-8} 然后“重新构建”(一定要进行这步)即可