- 博客(34)
- 收藏
- 关注
原创 string类的深拷贝和浅拷贝问题
今天才知道string类的复制在windows下是浅拷贝,在linux下深拷贝!!!!!!!!!!!!!!!这个问题的发现源于笔者在使用strtok的时候写下如下代码string line="google.com";string top_domain=line;//这里是重点哦char* str=strtok((char*)line.c_str(),".");cout<<...
2019-06-05 22:12:45
782
转载 结构体讲解
一、了解结构体1在C语言中,除了最常见用数据类型,字符类型(char)、整数类型(short、int、long )、实型(float、double),,,,,,最常见也是最经典的还有一种数据类型,那就是结构体。 二、结构体经典面试题: (1)、什么是结构体? (2)、一般在什么情况下用到结构体? (3)、什么是结构体内存...
2018-12-18 21:13:32
286
转载 c/c++中define用法详解及代码示例
c++中define用法define在c++语言中用法比较多,这里对其进行整理。1.无参宏定义无参宏的宏名后不带参数。 其定义的一般形式为:#define 标识符 字符串1其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等...
2018-12-18 16:20:26
617
原创 Debian9安装LAMP环境(Apache2+MariaDB+PHP5.6)-系统迁移(debian8->debian9)
最近要迁移老系统(非常非常非常老版本配置的web系统)到新的服务器上(Debian9),因为版本兼容问题好一阵折腾。写下这篇博客梳理一下学习探索的过程和成果,希望可以让面临相似问题的同学们少走点弯路。只想看LAMP安装的请直接下滑到2、Debian9安装LAMP1、明确新老环境配置做系统迁移之前一定要首先明确1)老服务器的操作系统版本,要迁移的web系统在该OS上涉及到的所有环境、...
2018-11-14 17:17:21
1712
原创 STL中非常好用的二分查找函数汇总
1、搜索某个元素是否存在,使用binary_search(beg,end,val)或binary_search(beg,end,val,op)2、获得被搜寻元素的位置,应使用lower_bound(),upper_bound()或equal_range()参数与以上相同3、检查若干个值是否存在bool includes(beg,end,searchBeg,searchEnd)或bool i...
2018-11-09 23:00:07
6662
转载 关于数据库ceil()函数,floor()函数,round()函数和trunc()函数
原 关于数据库ceil()函数,floor()函数,round()函数和trunc()函数 2016年10月26日 17:28:34 Teddy Li 阅读数:10850 <span class="tags-box artic-tag-box"&...
2018-11-09 11:02:24
881
转载 单链表逆转总结(原地+新建链表)
1 定义单链表node的数据结构定义如下:class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; }}2 方法1:就地反转法2.1 思路把当前链表的下一个节点pCur插入到头结点dummy的下一个节点中,就地反转。...
2018-11-06 16:20:09
1861
原创 vector的remove和erase函数的区别
首先我们先来看一下两个函数iterator erase(iterator position);iterator erase(iterator first, iterator last);erase:erase函数可以用于删除vector容器中的一个或者一段元素,在删除一个元素的时候,其参数为指向相应元素的迭代器,而在删除一段元素的时候,参数为指向一段元素的开头的迭代器以及指向结尾元...
2018-11-02 12:59:51
98647
6
原创 strtok函数 的原理及一个坑
我们知道strtok是一个字符串切割函数,先来了解一下它原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。原理:找到分隔符,并用'\0'代替,即字符串的结束符。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。再看...
2018-11-01 11:54:56
6394
1
转载 nohup和& 的区别
看个小程序:#include <stdio.h>#include <unistd.h> int main (){ int x = 0; while(1) { printf("hello %d, pid %u, ppid %d\n", x++, getpid(), getppid()); sleep(1); } ...
2018-10-25 11:12:41
154
原创 批量将目录下所有文件进行 dos/unix 格式转换
使用 sed + grep #sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录` eg: sed -i 's/$/\r/g' `grep '$' -rl .` #批量转unix to dos注意不要在要修改的目录下执行,可以在上一级,因此所在目录写成 ./要转换目录使用find + sed eg: find . -name "*....
2018-10-16 19:11:20
1751
原创 linux向数据库写入中文出现乱码的终极方法
笔者最近在研究小语种域名,需要先将punycode编码的域名(即带有“xn--”的域名)转成Unicode编码的域名(即以小语种形式表示的域名),并判断语种。可是,在将数据写入数据库的时候中文变成了乱码,???的形式,即一个中文用一个“?”代替了。经过多次查找资料及尝试,发现解决此类问题可以从三方面进行排查:1、数据库和表的编码2、与数据库建立连接的时候设置编码格式3、C++存储中...
2018-10-13 22:22:36
3737
原创 Timeout error occurred trying to start MySQL Daemon数据库启动超时
楼主今天想要改数据库配置,所以就对数据库关闭,重启,关闭,重启。。。。。service mysqld stopservice mysqld start.............突然!数据库重启失败,报错Timeout error occurred trying to start MySQL Daemon楼主以为是将配置文件/etc/my.cnf改错了才出现这种情况,各种查数据库...
2018-10-11 17:08:02
3004
原创 关于string, char*, char[]中的‘\0’问题
1. const char* 字符串 以 “\0”结尾。2. char[] 字符串 以 “\0”结尾。3.string 字符串 不以 “\0”结尾。4. char[n] = "string", 当string 长度+“\0”>n时,会因空间不足出错。5.string.c_str() 转 const char* 时, 会在字符串末尾 自动补“\0”6.char* 转stri...
2018-09-29 18:22:51
7102
原创 linux下fprintf写入文件乱码
笔者最近经常在linux下运行一些C++程序,每次用fprintf将string类型的结果写入文件时,编译以后总会出现 警告:cannot pass objects of non-POD type ‘const struct std::basic_string<char, std::char_traits<char>, std::allocator<char> &...
2018-09-20 21:27:35
3169
原创 利用与运算(&)求十进制数的二进制中1的个数
#include "stdio.h"#include "stdlib.h"#include "iostream"using namespace std;int main(){ int a=5; int i=0; while(a!=0) { a=a&(a-1); i++; } cout<<i<<endl; system("pause&q
2018-09-04 20:59:15
1008
原创 栈的定义及在括号匹配中的使用
栈是数据结构中的一个重要应用,今天做华为的笔试题想要就此积累一下此题可以看成是括号匹配题的一个改进。首先栈的定义和基本函数的书写为:struct stack{ char strstack[stacksize]; int top;};void InitStack(stack &s){ s.top=-1;}char Push(stack ...
2018-08-24 16:42:26
296
原创 json读取数据:ValueError: Extra data: line 77 column 2 - line 16485 column 1 (char 1159 - 227243)
python解析json文件,搞了好久,原来问题出在换行的这个地方。。。。。。借鉴了别人的博客把问题解决了如果你要读取一个多行的json文件,比如{"pid": 150400, "id": 150402, "name": "电影票"}{"pid": 150000, "id": 150500, "name": "票务"}{"pi
2018-07-19 17:09:02
14030
原创 echarts读取不到服务器上的.gexf文件
今天做echarts,始终get不到gexf文件,一直加载loading,通过新学习了用chrome的开发者工具(F12)调试,刷新网页,点击Network,看请求的les-miserables.gexf的内容发现乱码,看到错误出现在引入的.js文件,回到html上查找引入的.js1.thinkphp引入路径的问题,这个一定要注意:<script type="text/javascript"...
2018-07-15 22:10:55
3316
1
原创 由Linux与window下换行符引发的bug
今天写一个读取txt文件中行数据再处理的程序一直输出错的结果,经查是在window下生成的txt文件格式为dos而传到linux上读取的时候应该改为unix格式。vim 文件下,做:set ff查看文件格式,再:set ff=unix即可换行符区别参考https://blog.csdn.net/wjcquking/article/details/6634504...
2018-07-12 10:46:14
409
转载 python遍历文件夹下所有文件
用python遍历一个文件夹下所有文件名称可以用字典的方式,程序可参考程序“E:\untitled\weather\extact_copy.py”#coding=utf-8import osimport os.pathrootdir = "E:\\weather_data\\pressure\\data_before" # 指明被遍历的文件夹for parent,dirname...
2018-07-11 12:05:28
551
原创 curl请求HTTP的get和post
#include"stdafx.h"#include <stdio.h>#include <curl/curl.h>#include "string"#include"stdio.h"#include"stdlib.h"#include "iostream"using namespace std;bool getUrl(char *filename){
2018-07-10 20:19:12
803
原创 bugbugbugbug
"insert ignore into ns(domain_name,domain_id,ns_name,ftime,ltime,language) values ('%s',%u,'%s',%u,%u,'%s') on duplicate key update ltime=%u",dns_domain_info_map_it->first.c_str(),domain_info_pnode...
2018-05-22 19:44:27
172
转载 mysql_query('set names utf8')解决浏览器或者数据库中文乱码的问题?
在mysql数据库中有3个变量:character_set_clientcharacter_set_connectioncharacter_set_results你可以分别理解为:客户端 连接器 返回值客户端 :通常有cmd下的命令行,或者浏览器连接器 :这个比较抽象,我们看不到,应该是在mysql数据库中的返回值 : 就是以什么样的字符编码来给客户端我们一般在cmd下set names gbk ...
2018-05-20 20:35:36
1495
原创 char,char[]和char*
char* a;char b[128];b=a;是错误的数组指针可以给char*赋值哦,但是指针那个不能赋值给数组指针哦那个数组指针可以理解为不能变化的指针指针是需要占用内存空间来存储地址的;数组名则更像是一个立即数或者常数。你可以修改指针指向的内容,但你绝对无法改变数组名的指向数组名本质上和指针还是有区别的,只是有的时候可以简单理解成指针...
2018-05-01 20:25:27
554
原创 运行期类型识别
C++支持运行期类型识别(RTTI)运行期类型识别提供以下功能:在运行期对类型转换操作进行检查在运行期确定对象类型扩展C++提供的RTTI一、在运行期对类型转换操作进行检查:dynamic_cast和static_cast操作符在C++中,编译期合法的类型转换操作可能会在运行期发生错误,当转型操作数据对象指针或引用时,更易发生错误。先对static_cast的类型转换检查进行说明class B{}...
2018-04-23 22:59:46
198
原创 重载、覆盖、遮蔽和名字共享
一、重载如果顶层函数有不同的参数,它们的函数名可以相同在一个类中,成员函数可以有相同的函数名,只要函数签名不同(函数名、参数个数参数类型)即可,这种情况称为重载,重载与编译器绑定对应,不管是成员函数还是顶层函数。例void f()void f(int x)则调用时f(); f(3)会自动识别调用的是哪一个函数而二、覆盖1、在典型的多态情况下,派生类的虚函数覆盖了从基类继承来的虚函数,要形成覆盖...
2018-04-23 20:53:05
185
原创 类中的static
1、static成员函数static成员函数又称为类成员函数非static成员函数既可以访问static数据成员,也可以访问非static数据成员;而static成员函数只能访问static数据成员比较如下:成员函数类型访问权限合法调用对象对象和类成员c.om()类仅仅是类成员C::cm(), c.cm()其中对象c属于类C;成员函数om是C的非static成员函数;成员函数cm是C的stat...
2018-04-17 17:42:50
1422
原创 虚构造函数和虚析构函数
构造函数不能是虚成员函数,但析构函数可以是虚成员函数。class A{public:A();~A();};class B:public A{public:B();~B();};int main(){A* ptr;ptr=new B();delete ptr;}上述new操作会使构造函数A(),B()均被调用,因为ptr是指向B的对象的指针,因此基类和派生类的构造函数都会被调用,但是析构函数只会调用...
2018-04-17 17:21:54
4580
原创 C++的多态性与绑定的关系
函数被调用时,应该执行哪一段代码是由编译器在编译阶段就决定了的,编译时,编译器将所有对函数的调用都绑定到函数的代码入口地址处。这种绑定方式成为编译期绑定。运行期绑定是直到程序运行之时,才将函数名称绑定到其入口地址。如果对一个函数的绑定发生在运行时刻而不是编译时刻,我们称该函数是多态的。对于C++这样的混合语言,函数既可以是多态的,也可以是非多态的,这由绑定的时机是编译时刻还是运行时刻来决定。在C+...
2018-04-17 16:31:58
182
原创 虚基类
当在多条继承路径上有一个公共的基类,在这些路径中的某几条汇合处,这个公共的基类就会产生多个实例(或多个副本),若只想保存这个基类的一个实例,可以将这个公共基类说明为虚基类。例class A{};class B : virtual public A{};class C : virtual public A{};class D : public B,public C{};继承图同时需要说明的是单继承构...
2018-04-17 16:15:04
172
原创 派生类中的构造函数
对于一般的类来说,如果不声明构造函数,则自动调用默认构造函数class A{public:A();};如果声明了另外一个构造函数,则会覆盖默认构造函数class A{public:A(int n){a=n};private:int a;};此时如果声明一个对象,则不可以直接A a;必须要A a(3);多数情况下,编译器为类生成一个默认构造函数,只有以下两种情况除外:1、一个类显式地声明了任何构造函...
2018-04-16 22:56:49
6074
原创 与文件有关的传值调用
void PRINT_ROW(ofstream& out,char c,int n){for(int i=0;i<n;i++)out<<c;out<<'\n';}该程序将字符c输出N遍,再输出一个换行符,输出的目的地是与变量out相关的文件。变量out是通过以下引用ofstreasm& out进行传递实际上,变量out绝不能用传值调用方式,因为out与...
2018-04-14 18:19:28
100
原创 为何fstream:open函数不支持string作为文件名
都是STL的一部分,为什么fstream::open的参数只能是const char*呢? 要用string的话还得c_str()一下。这是STL设计上的问题吗,还是出于别的什么原因的考虑?1、string是类,char是基础类型。类当中包含成员变量以及方法。有点结构化类型的意思。char []是数组类型。都不是一个思想的产物2、为了不引入不必要的依赖。stream::open的文件名如果使用st...
2018-04-14 17:12:16
1437
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人