自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 安装完tensorflow之后No module named 'tensorflow'问题

因为anaconda是自带python的,而我是用本机的python安装的tensorflow,所以要想import tensorflow,必须要用本机的python。也就是在activate tensorflow之后输入本机的python3而不是python,这样才可以import tensorflow。...

2020-03-16 19:14:50 45237 6

转载 明星软件工程师的10种特质

1. 热爱编程 2. 完成事情 3. 持续重构代码 4. 使用设计模式 5. 编写测试 6. 善用现有代码 7. 专注可用性 8. 编写可维护的代码 9. 能用任何语言编程 10. 知晓基本的计算机科学1. 热爱编程编程是一种为了满足兴趣而心甘情愿去做的劳动(Programming is a labor of love)。和其他任何职业一样,唯有真正的热情,才能完成真正的伟大...

2020-02-12 13:48:29 280

原创 vector二维数组的初始化

之前我一直以为vector不能用vec = {1,2,3}这种方式直接定义,直到我看到下面的代码vector<vector<int> >num = { { 1, 1, 1, 0, 1, 1 }, { 1, 0, 1, 1, 1, 1 }, { 1, 1, 1, 0, 0, 1 }, { 1, 0, 1, 0, 0, 1 }, { 1, 1, 1, 1, 1, 1 }...

2019-11-21 11:01:59 2779

原创 C++ 用数组初始化vector的两种方式

int myints[] = { 10, 20, 30, 40, 50, 60, 70 };//方法1std::vector<int> myvector(7);std::copy(myints, myints + 7, myvector.begin());//方法2vector<int> vec(begin(myints), end(myints));...

2019-11-20 17:14:25 1091

原创 空指针的地址为0

偶然看到一个求空指针的地址的代码#include <iostream>using namespace std;struct AInfo { int a; int b; int c;};int main(){ AInfo* pinfo = NULL; int value = (int)(&(pinfo->c)); cout << &...

2019-10-16 14:53:47 1840

原创 三大范式

先总结:第一:所有字段都应该是原子的,不可拆分的。第二:所有字段都应该完全依赖于所有主键,不得有部分依赖。第三:字段应该只依赖于主键,不得依赖于其他字段。从这里可以看到,第二、三范式都是讲其他字段对于主键的依赖,既不能部分依赖主键,又不能依赖非主键字段。第一范式不用说了,字段的定义都应该是不可拆分的。第二范式在下面这个订单表里,有产品id,用户id,产品名、用户名,其中产品名和...

2019-10-03 21:31:16 2190

原创 Hashmap结构

数组+链表一个node中存储key-value对,以及链表中下一个node的指针。存储过程一个key-value过来,使用hashcode()函数根据key计算出hashcode,然后拿hashcode的高16位和低16位相异或。然后这个hashcode就作为key-value对,即数组的下标,如果当前下标已经有一个node了,就把这个node接到前面那个node的下面链表。异...

2019-09-29 14:59:34 102

原创 vector二维数组根据某列排序

写一个bool类型的comp函数,比如下面根据第二个元素排序:bool cmp1(const vector<int> &a, const vector<int> &b){ return a[1] > b[1];}sort(allvec.begin(), allvec.end(), cmp1)...

2019-09-17 21:32:19 1656

原创 gcc下数据类型字节数

C类型 32 64 char 1 1 short int 2 2 int 4 4 long ...

2019-09-09 13:13:05 635

原创 C++数组引用传递

引用传递似乎有两种方式,一种指定长度的方式,一种模板类的方式void pp(int(&ch)[8]){ //int len = strlen(ch); cout << sizeof(ch)/sizeof(ch[0]);}template<class T>int length(T& arr){ //cout << sizeo...

2019-09-04 17:51:29 3372

原创 strcpy简单用法

用于字符数组拷贝,面试题中常会用到。有两个参数strcpy(char *b,char *a)第二个参数向第一个参数传值, 注意要先为b申请内存空间#include<iostream>using namespace std;void main(){ char *a = "aaaaaaa"; char *b = new char[strlen(a) + 1];...

2019-08-28 09:50:57 1021

转载 C++内联函数(C++ inline)详解

使用函数能够避免将相同代码重写多次的麻烦,还能减少可执行程序的体积,但也会带来程序运行时间上的开销。函数调用在执行时,首先要在栈中为形参和局部变量分配存储空间,然后还要将实参的值复制给形参,接下来还要将函数的返回地址(该地址指明了函数执行结束后,程序应该回到哪里继续执行)放入栈中,最后才跳转到函数内部执行。这个过程是要耗费时间的。另外,函数执行 return 语句返回时,需要从栈中回收形参和局...

2019-08-25 10:33:08 174

转载 TCP四次挥手

四次挥手所谓四次挥手(Four-Way Wavehand)即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发,整个流程如下图所示:由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个...

2019-08-24 13:51:02 103

转载 关于const int * ,int const * 以及 int * const 的区别

1.常量指针int * const p;一个常量指针,必须初始化,之后它指向的地址就不能改变。就因为它是常量。常量是不可以被赋值的。#include <iostream>using namespace std;int main(){ int i = 10; int j = 20; int * const p = &i; p = ...

2019-08-21 15:02:11 879

原创 Python中的eval函数

用函数名执行函数,并返回返回值def foo(val): print("foo",val) return "foo"def bar(val): print("bar",val) return "bar"func_list = ["foo","bar"]val = "tttt"for func in func_list: res = e...

2019-08-16 16:36:10 158

转载 被调函数分配的内存有哪些能被主调函数使用

结论:栈不可以用,堆和全局区的内存可以用。

2019-07-29 21:24:26 250

原创 cx_freeze missing modules错误

用cx_freeze打包一个python工程,发现怎么都打包不了一个文件夹,经过反复试验后发现是忘了在那个文件夹下添加__init__文件了。一个很蠢的失误,记录一下。...

2019-07-26 13:33:22 624

转载 PyQt学习笔记(6)——Actions and Key Sequences

来源:http://blog.sina.com.cn/s/blog_4b5039210100gxwb.html在Qt中,目前我认为做的最好的两种机制就是:SIGNAL and SLOTS和Actions and Key Sequences。Actions and Key Sequence我对他的理解就是各种动作带来的核心一致反应。举个例子:比如我们在应用程序中常见的“新建文件”这...

2019-06-25 10:05:19 202

转载 安装事件过滤器(installEventFilter) ,过滤子控件事件,截获控件按键、鼠标事件

文章来自:http://blog.csdn.net/iamdbl/article/details/1630043#Qt的事件模型一个强大的功能是一个QObject对象能够监视发送其他QObject对象的事件,在事件到达之前对其进行处理。假设我们有一个CustomerInfoDialog控件,由一些QLineEdit控件组成。我们希望使用Space键得到下一个QLineEdit的输入焦...

2019-06-24 17:24:35 294

转载 python中items()和iteritems()函数的用法

items函数,将一个字典以列表的形式返回,因为字典是无序的,所以返回的列表也是无序的。a = {'a':1,'b':3}a.items()返回a = [('a',1),('b',3)]iteritems()返回一个迭代器b = a.iteritems()list(b) =[('a',1),('b',3)]for k,v in b: print k,...

2019-06-18 10:12:33 1977

转载 __import__详解

当使用import导入Python模块的时候,默认调用的是__import__()函数。直接使用该函数的情况很少见,一般用于动态加载模块。__import__(name, globals, locals, fromlist, level)只有name是必选参数,其他都是可选参数,一般情况下直接使用name参数即可。fromlist指明需要导入的子模块名,level指定导入方式(相对导入或者...

2019-06-14 11:06:32 28119

转载 Python __init__.py 作用详解

__init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。通常__init__.py 文件为空,但是我们还可以为它增加其他的功能。我们在导入一个包时,实际上是导入了它的__init__.py文件。这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入。# package...

2019-06-13 17:59:12 131

原创 字符串1级指针内存模型

#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h>#include <string.h>#include <stdio.h>void main61(){ char buf[20]= "aaaa"; //定义并且初始化 char buf2[] = "bbbb"; char *p1 = "11...

2019-05-27 16:46:34 92

原创 指针和数组变量的区别

char *p = NULL; char buf5[128] = "absadsad"; for (i=0; i<strlen(buf5); i++) { printf("%c ", buf5[i]); } p = buf5; //buf 代表数组首元素的地址 for (i=0; i<strlen(buf5); i++) { printf("%...

2019-05-27 16:36:22 149

转载 C++ pair的基本用法总结(整理)

1,pair的应用pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。其标准库类型--pair类...

2019-05-23 14:19:21 150

原创 网易笔试题

#include<iostream>//网易笔试题第一题/*给定一个棋盘M、N,小球的初始位置Ax、Ay,初始方向V(1左上,2右上,3右下,4左下),时间time,求最终小球位置*/using namespace std;bool wall(int Ax, int Ay, int M, int N, int &Vx, int &Vy, int &a...

2019-05-10 10:42:16 399

转载 转【STL】vector的五种构造函数

void test_vector_constructor(){ // 0. Create an empty vector v0 std::vector<int> v0; assert(v0.empty()); // 1. Create a vector v1 with 3 elements of default value 0 std::vector<int&g...

2019-05-06 17:17:15 599

转载 关键字static的作用

1、 关键字static的作用是什么?正确答案:这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3). 在模块内,一个被声明为静态的函数只可被这...

2019-05-05 12:21:14 56699

转载 typedef关键字

typedef关键字的作用:给数据类型定义一个新名字,1. 提高了移植性2. 简化复杂的类型声明,提高编码效率3. 解释数据类型的作用

2019-04-26 10:22:55 177

转载 static 和const分别怎么用

6.static 和const分别怎么用,类里面static和const可以同时修饰成员函数吗?static的作用:对变量:1.局部变量:在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。1)内存中的位置:静态存储区2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)3)作用域:作用...

2019-04-26 09:28:58 4718

原创 vector中resize()和reserve()区别

resize一个vector,相当于给其创建了n个元素,可以直接访问。 reverse的话,相当于申请了n个元素的空间,不可以直接访问,当push_back的时候,就是把元素放到这些空间里。同时牵扯到size()和capacity()的区别,size()相当于已经拥有的元素大小,而capacity()是能够装下的元素大小,当前可能并没有那么多元素,对应reverse。...

2019-04-26 08:49:29 260

转载 三种工厂模式

1.简单工厂模式productA 和ProductB继承同一个父类,然后有一个工厂类包含create方法创建这两个类的实例。使用的时候,在Client中先实例化工厂类,然后调用create方法获取ProductA或B的实例。2.工厂方法模式简单工厂模式只用一个工厂,来创建多个Product,这样要添加新产品时就要在它的create方法中加一个分支,违背了开放-封闭原则。所以...

2019-04-24 13:51:42 192

转载 C++ 解析什么叫“class”类型重定义还有解决方法

class类型重定义 ,顾名思义就是重复定义了。比如你定义了一个类 class A 然后你在后面写代码的时候,又定义了一个相同名字的类class A 那么编译的时候就会出现这样的错误提示。出现这样的问题,有可能是头文件加载加载引起。解决方法,可以通过在头文件最上方写:  #ifndef XXXXXXX  #define XXXXXXX  文件最后  #endif...

2019-04-24 12:49:35 8780 2

转载 C++创建对象的三种方式

#include <iostream> usingnamespacestd; classA { private: intn; public: A(intm):n(m) { } ~A(){} }; intmain() ...

2019-04-24 12:48:35 111

原创 (*a)[]与*a[]的区别

(*a)[]与*a[]的区别要注意符号优先级问题,(*a)[]表示*a首先要是一个指针,这个指针指向的数据类型是一个数组,这叫数组指针可以相当于二维数组用int(*k)[3] = new int[5][3];k[1][1] = 2;k[1][2] = 3;*a[]优先级是先算a[],表示a首先要是一个数组,再算*,就是数组里面每一个元素都是一个指针,这叫指针数组*a+...

2019-04-23 22:55:33 2586

原创 阿里C++面试题

1. new和malloc的区别。 详细参考:链接new是运算符,malloc()是一个库函数; new会调用构造函数,malloc不会; new返回指定类型指针,malloc返回void*指针,需要强制类型转换; new会自动计算需分配的空间,malloc不行; new可以被重载,malloc不能。2. 内存泄漏的解决方法:养成良好的编码习惯和规范,记得及时释放...

2019-04-18 19:54:17 1167

转载 经典面试题之new和malloc的区别

new和malloc的区别是C/C++一道经典的面试题,我也遇到过几次,回答的都不是很好,今天特意整理了一下。0.属性new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。1.参数使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。...

2019-04-18 19:44:35 346

转载 多态相关面试题

面试题1:请谈谈你对多态的理解多态的实现效果多态:同样的调用语句有多种不同的表现形态;(同样一个函数在不同的子类、父类中穿梭的时候表现出不同的形态。)多态实现的三个条件有继承、有virtual重写、有父类指针指向子类对象。多态的C++实现是通过虚函数重写实现。virtual关键字,告诉编译器这个函数要支持多态;不是根据指针类型判断如何调用;而是要根据指针所指向的实际对象类型...

2019-04-18 14:41:05 151

转载 C++面试题

9.在什么时候需要使用“常引用”? 如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。常引用声明方式:const类型标识符&引用名=目标变量名;例1int a ;const int &ra=a;ra=1; //错误a=1; //正确例2string foo( );void bar(string &a...

2019-04-17 21:52:47 164

转载 【C++】intialization list 和 assignment

intialization list指的是初始化列表.Assignment 指的是赋值.什么是初始化列表:构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。class foo{ string name; int id; foo(string s, int i):name(s), id(i)...

2019-04-17 21:48:26 464

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除