- 博客(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
45278
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
304
原创 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
2812
原创 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
1149
原创 空指针的地址为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
1870
原创 三大范式
先总结:第一:所有字段都应该是原子的,不可拆分的。第二:所有字段都应该完全依赖于所有主键,不得有部分依赖。第三:字段应该只依赖于主键,不得依赖于其他字段。从这里可以看到,第二、三范式都是讲其他字段对于主键的依赖,既不能部分依赖主键,又不能依赖非主键字段。第一范式不用说了,字段的定义都应该是不可拆分的。第二范式在下面这个订单表里,有产品id,用户id,产品名、用户名,其中产品名和...
2019-10-03 21:31:16
2226
原创 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
134
原创 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
1690
原创 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
3445
原创 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
1046
转载 C++内联函数(C++ inline)详解
使用函数能够避免将相同代码重写多次的麻烦,还能减少可执行程序的体积,但也会带来程序运行时间上的开销。函数调用在执行时,首先要在栈中为形参和局部变量分配存储空间,然后还要将实参的值复制给形参,接下来还要将函数的返回地址(该地址指明了函数执行结束后,程序应该回到哪里继续执行)放入栈中,最后才跳转到函数内部执行。这个过程是要耗费时间的。另外,函数执行 return 语句返回时,需要从栈中回收形参和局...
2019-08-25 10:33:08
194
转载 TCP四次挥手
四次挥手所谓四次挥手(Four-Way Wavehand)即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发,整个流程如下图所示:由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个...
2019-08-24 13:51:02
127
转载 关于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
915
原创 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
175
原创 cx_freeze missing modules错误
用cx_freeze打包一个python工程,发现怎么都打包不了一个文件夹,经过反复试验后发现是忘了在那个文件夹下添加__init__文件了。一个很蠢的失误,记录一下。...
2019-07-26 13:33:22
684
转载 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
221
转载 安装事件过滤器(installEventFilter) ,过滤子控件事件,截获控件按键、鼠标事件
文章来自:http://blog.youkuaiyun.com/iamdbl/article/details/1630043#Qt的事件模型一个强大的功能是一个QObject对象能够监视发送其他QObject对象的事件,在事件到达之前对其进行处理。假设我们有一个CustomerInfoDialog控件,由一些QLineEdit控件组成。我们希望使用Space键得到下一个QLineEdit的输入焦...
2019-06-24 17:24:35
334
转载 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
2009
转载 __import__详解
当使用import导入Python模块的时候,默认调用的是__import__()函数。直接使用该函数的情况很少见,一般用于动态加载模块。__import__(name, globals, locals, fromlist, level)只有name是必选参数,其他都是可选参数,一般情况下直接使用name参数即可。fromlist指明需要导入的子模块名,level指定导入方式(相对导入或者...
2019-06-14 11:06:32
28617
转载 Python __init__.py 作用详解
__init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。通常__init__.py 文件为空,但是我们还可以为它增加其他的功能。我们在导入一个包时,实际上是导入了它的__init__.py文件。这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入。# package...
2019-06-13 17:59:12
152
原创 字符串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
108
原创 指针和数组变量的区别
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
170
转载 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
164
原创 网易笔试题
#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
422
转载 转【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
623
转载 关键字static的作用
1、 关键字static的作用是什么?正确答案:这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3). 在模块内,一个被声明为静态的函数只可被这...
2019-05-05 12:21:14
60012
转载 typedef关键字
typedef关键字的作用:给数据类型定义一个新名字,1. 提高了移植性2. 简化复杂的类型声明,提高编码效率3. 解释数据类型的作用
2019-04-26 10:22:55
191
转载 static 和const分别怎么用
6.static 和const分别怎么用,类里面static和const可以同时修饰成员函数吗?static的作用:对变量:1.局部变量:在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。1)内存中的位置:静态存储区2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)3)作用域:作用...
2019-04-26 09:28:58
4759
原创 vector中resize()和reserve()区别
resize一个vector,相当于给其创建了n个元素,可以直接访问。 reverse的话,相当于申请了n个元素的空间,不可以直接访问,当push_back的时候,就是把元素放到这些空间里。同时牵扯到size()和capacity()的区别,size()相当于已经拥有的元素大小,而capacity()是能够装下的元素大小,当前可能并没有那么多元素,对应reverse。...
2019-04-26 08:49:29
277
转载 三种工厂模式
1.简单工厂模式productA 和ProductB继承同一个父类,然后有一个工厂类包含create方法创建这两个类的实例。使用的时候,在Client中先实例化工厂类,然后调用create方法获取ProductA或B的实例。2.工厂方法模式简单工厂模式只用一个工厂,来创建多个Product,这样要添加新产品时就要在它的create方法中加一个分支,违背了开放-封闭原则。所以...
2019-04-24 13:51:42
214
转载 C++ 解析什么叫“class”类型重定义还有解决方法
class类型重定义 ,顾名思义就是重复定义了。比如你定义了一个类 class A 然后你在后面写代码的时候,又定义了一个相同名字的类class A 那么编译的时候就会出现这样的错误提示。出现这样的问题,有可能是头文件加载加载引起。解决方法,可以通过在头文件最上方写: #ifndef XXXXXXX #define XXXXXXX 文件最后 #endif...
2019-04-24 12:49:35
9335
2
转载 C++创建对象的三种方式
#include <iostream> usingnamespacestd; classA { private: intn; public: A(intm):n(m) { } ~A(){} }; intmain() ...
2019-04-24 12:48:35
125
原创 (*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
2749
原创 阿里C++面试题
1. new和malloc的区别。 详细参考:链接new是运算符,malloc()是一个库函数; new会调用构造函数,malloc不会; new返回指定类型指针,malloc返回void*指针,需要强制类型转换; new会自动计算需分配的空间,malloc不行; new可以被重载,malloc不能。2. 内存泄漏的解决方法:养成良好的编码习惯和规范,记得及时释放...
2019-04-18 19:54:17
1196
转载 经典面试题之new和malloc的区别
new和malloc的区别是C/C++一道经典的面试题,我也遇到过几次,回答的都不是很好,今天特意整理了一下。0.属性new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。1.参数使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。...
2019-04-18 19:44:35
359
转载 多态相关面试题
面试题1:请谈谈你对多态的理解多态的实现效果多态:同样的调用语句有多种不同的表现形态;(同样一个函数在不同的子类、父类中穿梭的时候表现出不同的形态。)多态实现的三个条件有继承、有virtual重写、有父类指针指向子类对象。多态的C++实现是通过虚函数重写实现。virtual关键字,告诉编译器这个函数要支持多态;不是根据指针类型判断如何调用;而是要根据指针所指向的实际对象类型...
2019-04-18 14:41:05
167
转载 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
182
转载 【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
482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人