c++学习
hhyvs111
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
解决VS2017出现_CRT_SECURE_NO_WARNINGS 的问题
解决VS2017出现_CRT_SECURE_NO_WARNINGS 的问题@(C++) 用一些函数的时候会出现'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See onl原创 2017-11-28 19:18:55 · 10545 阅读 · 1 评论 -
QT实现TCP断点传输文件
网上这方面的资源不是很多,大多数都是Http的断点续传。因小项目需求需要做一个断点传输的功能,思考后自己设计了。 服务器和客户端都基于QT5.9,在这里只给出服务器传输文件到客户端,客户端上传文件到服务器原理一样。原理如下:将文件分块传输,比如每次发送4096字节。保证客户端正确接收字节且写入文件,然后向服务器反馈接收成功信息。服务器收到反馈信息继续进行发送。暂停下载...原创 2018-03-23 10:57:38 · 3039 阅读 · 4 评论 -
QComboBox选中后弹出另一个QComboBox
有时候我们会有这这样的需求比如点击QComboBox里的一项,然后弹出另一个QComboBox,形成复合选项。可以用到槽函数 connect(ui->selectcomboBox, SIGNAL(activated(int)), this, SLOT(insertTermComboBox(int)))int是你所选行所在的index,然后可以在 insertTermCom...原创 2018-02-14 15:22:34 · 1265 阅读 · 0 评论 -
给QTableView中的一列添加按钮
我的需求是在QTableView里有一列全变为按钮,并且点击按钮可以返回该按钮所在行的其他数据或行号。这里没有用QItemDelegate,感觉有点难而且理解起来不是那么透彻。在查询了一系列资料后发现一个很简单的方法且好用,前提是用了QStandardItemModel(),这个用来给QTableView加数据很方便。比如: table.cppinit(){.....原创 2018-01-19 20:38:31 · 15550 阅读 · 10 评论 -
linux 编译QT的mysql驱动
为编译这个驱动真的是一把血一把泪啊主要是要在阿里云上跑用QT写的服务器,但是运行的时候提示需要mysql驱动,只好自己编译qt的mysql驱动。一开始编译QT的源码发现默认选项的sql只有sqllite.so,但是我需要的是mysql的动态库,这样就要自己编译了。下载首先下载你需要的QT版本,去http://download.qt.io/archive/qt/ 这里找到你要的原创 2018-01-10 11:20:38 · 2147 阅读 · 2 评论 -
C++如何定义一个全局类
可能我这个全局类的说法不是很准确,不过其实就是变量的扩展延伸。比如你想把一个类让全部的CPP都能用,而不是一个变量,那么需要这样定义:假设有一个预编译头stdafx.h 在stdafx.h中加入你想要的全局类的头文件: include “CMyClass.h” ;在stdafx.cpp中加入类的定义 如:CMyClass myclass;在你想要用到该全局CMyClass类的其原创 2018-01-09 20:44:15 · 11047 阅读 · 0 评论 -
C++实现get与set
相信学过JAVA的对类的get和set方法一定不陌生,现在用C++来实现get和set方法。编写一个学生类,成员包括姓名,学号,年龄(默认值23),对上面3个成员分别都有设置值和取值的方法头文件Student.h#pragma once#include<iostream>using namespace std;#ifndef STUDENT_H_#define STUDENT_H_clas原创 2017-12-12 21:17:41 · 18026 阅读 · 1 评论 -
用模板实现add函数
首先要了解模板(template)是什么? 模板(Templates)使得我们可以生成通用的函数,这些函数能够接受任意数据类型的参数,可返回任意类型的值,而不需要对所有可能的数据类型进行函数重载假如我们要写一个add函数,要求能够进行int,double,float的运算。如果不用模板(template)而用重载的话要写三个一样的函数,这样一来既麻烦也影响代码的美观。所以可以用模板来实现这个函原创 2017-12-12 19:56:52 · 1812 阅读 · 0 评论 -
提取字符串中的数字
题目:输入一个字符串,有数字和非数字如: “313wrw.13341231se][‘w23’ww” 要求将连续的数字做为一个整数,如313,1334,将其存到一个数组里,并统计有多少个,最后打印出来。思路:题目要求连续的数字作为一个整数,那么从后面遍历字符串方便处理高位的问题;设置一个倍数flag,若为连续数字则倍数*10,遇到字符则倍数清零;字符串里有多组数字的时候还要判断什么时候数组原创 2017-11-29 22:05:06 · 12204 阅读 · 0 评论 -
约瑟夫环(非递推版)
之前写这个的时候没有想到用递推,就是简单的暴力求解,思路也清晰比较好理解。但是递推版初学者一时半会可能很难理解,这里给出一个用数组求解约瑟夫环的代码。题目:有n个人围成一个圈,顺序排号,从第一个人开始报数(从1到3报数),凡是报到3的人退出,问最后留下的是原来的第几号的那位?(有些版本要求每次退出的人的位置)原创 2017-12-10 09:57:46 · 1021 阅读 · 0 评论 -
已知今天是几月几号,编一个程序,求若干天之后是多少号。
如题。 思路:先设置一个月份数组,再判断是否是闰年;判断输入的天数是否大于输入的月份对应的天数;若大于则减去当前月份的天数然后计算下一个月,否则直接将天数加到输入的日期上;如果月份大于12则年份加1。 #include < iostream>int month[13] = { 0,31,28,31,30,31,31,30,31,30,31,30,31 };int main(){原创 2017-12-10 09:42:33 · 1083 阅读 · 0 评论 -
字符串循环右移
字符串循环右移处理字符串的经典问题,具体理解起来不是那么容易。下面有一种速度和空间都比较好的方法: 例:将”abcdef”向右移动2位,目标字符串是‘efabcd’。将字符串分为‘abcd’和‘ef’,将前面的字符串翻转为‘dcba’,则当前字符串为‘dcbaef’。再将后面的字符串翻转为‘fe’,则当前字符串为‘dcbafe’。最后将整个字符串翻转‘efabcd’。#include<io原创 2017-11-28 21:28:07 · 527 阅读 · 0 评论 -
将字符串插入另一个字符串的指定位置
题目:编写一个函数,将一个字符串插入到另一个字符串的某个位置后面(例如:将”abc”插入到”abcdef”的第三个字符位置后面,结果为”abcabcdef”)。编写程序时,请在必要的地方加以注释(注:不能用该程序语言的内置函数或过程)。思路:将str1字符串的指定位置后的内容复制到另一个字符串中,空间换时间降低时间复杂度;再将str2字符串(待插入字符串)复制到str1的指定位置;将str1和原创 2017-11-29 21:12:14 · 22099 阅读 · 0 评论 -
两个字符串拼接(不用strcat函数)
字符串拼接要求不用strcat函数,具体思路如下:先求出2个字符串的长度用循环将第二个字符串的字符添加到第一个字符串的后面#include <iostream>#include <cstring>#define Max_num 1000char* myStrcat(char *str1, char *str2){ int len1 = strlen(str1); int原创 2017-11-29 17:15:26 · 15446 阅读 · 0 评论 -
从文件路径析取文件名、后缀名和文件所处位置
编写一个完整的函数,完成从一个给定的完整的文件路径(如”C:\My Documents\Software Test 1.00.doc”)中,析取文件名,扩展名和文件所处目录的功能,编写程序时,请在必要的地方加以注释。思路: 前提是输入的文件路径是合法的从后往前遍历字符串,遇到第一个‘.’符号记录其位置,则‘.’后面的都是后缀名;再从‘.’开始向前遍历,直到遇到第一个‘\’符号,‘\’和‘.’之原创 2017-11-29 19:33:25 · 1272 阅读 · 0 评论 -
const指针的理解
const指针有点复杂啊,一系列const组合起来。看的人头都大了!但总的来说,想要存放常量对象的地址,只能使用指向常量的指针const double pi = 3.14; // pi是个常量,它的值不能改变double *ptr = &pi //错误:ptr是一个普通指针const double *cptr = &pi; //正确...原创 2018-03-31 15:26:01 · 611 阅读 · 0 评论
分享