人工智能开发常用编程语言

编程语言有很多种。各有所长!编程者能学会的、能解决问题的语言,就是好的编程语言。 »More »

复杂链表的复制

输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 解析: 对于复杂链表的复制,不易直接复制,应该在原链表每个元素后插入相同元素,并复制新链表特殊指针,然后拆分原链表和复制的链表 ```python # -*- codin... »Learn more »


C++类型转换总结

# C++类型转换 类型转换就是将给定类型的表达式转换为另一种类型。C++中的转型可分为两种:隐式类型转换和显式类型转换。下面将详细介绍这两种转型操作,以及各自的适用场景,潜在问题,最终将总结使用类型转换操作应牢记的原则。 # 一、隐式类型转换 C语言中的类型转换属于旧式的类型转换,其使用比较简单,只要在待转换的变量前加上转换的类型即可,然后括号可以加在原变量上面,也可以加在类型名称... »Learn more »


多态

# 多态 多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4 编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指... »Learn more »


Rocks cluster笔记——Rocks安装的一些常见问题

常见问题和命令 1.永久关闭防火墙: rocks run host "chkconfig iptables off" 2.增加环境变量: 全局变量 加入到 /etc/profile ​ 当前用户变量加入到 ~/.bashrc 3.设置系统时间 设置系统时间 date -s 20071215 date -s 15:35 如果要同时更改BIOS时间 在执行 c... »Learn more »


运算符重载

c\++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c\++中不止函数可以重载,运算符也可以重载。由于一般数据类型间的运算符没有重载的必要,所以运算符重载主要是面向对象之间的。 # 1.一般运算符重载 在进行对象之间的运算时,程序会调用与运算符相对应的函数进行处理,所以运算符重载有两种方式:成员函数和友元函数。成员函数的形... »Learn more »


VIM使用技巧

Vim (/vɪm/;一个很好的编辑器,a contraction of Vi IMproved) is a clone, with additions, of Bill Joy's vi text editor program for Unix. It was written by Bram Moolenaar based on source for a port of the Stevi... »Learn more »


同一进程中的线程究竟共享哪些资源

# 同一进程中的线程究竟共享哪些资源 分类: LINUX > **线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。** 进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括: 1.线程ID ... »Learn more »


指针

# 1.字符常量的指针 常量字符串位于常量区,编译器一般都只保留一份,不会有重复,所以,相同字符串地址相同。char *str = "microsoft",也是将常量区中字符串的起始地址赋值给str,但我们不能通过str修改那个字符串,否则程序会崩溃,因为它在常量区。 ``` #include int main(int argc, char *argv[]) { char *s = ... »Learn more »


栈区堆区_一个由CC++编译的程序占用的内存分为以下几个部分

一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由[编译器](http://baike.so.com/doc/6133192.html)自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链... »Learn more »


进程状态

进程状态 三态模型:在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化。进程一般有3种基本状态:运行、就绪和阻塞。 (1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。 (2)就绪:当... »Learn more »


new分配空间及初始化

## 在C++primer(第5版)中关于new的讨论有 ### 1、new当个对象 new在自由空间分配内存,但其无法为其分配的对象命名,因次是无名的,分配之后返回一个指向该对象的指针。 ``` int *pi = new int; // pi指向一个动态分配的,未初始化的无名对象 ``` 此new表达式在自由空间构造一个int类型对象,并返回指向该对象的指针。 默认情况下,动... »Learn more »


Linux常用命令

# 文件和目录 ``` cd /home 进入 '/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -... »Learn more »


多态-virtual 函数是动态绑定,而缺省参数值却是静态绑定

virtual 函数是动态绑定,而缺省参数值却是静态绑定。 意思是你可能会 在“调用一个定义于派生类内的virtual函数”的同时,却使用基类为它所指定的缺省参数值。 结论:绝不重新定义继承而来的缺省参数值!(可参考《Effective C++》条款37) 对于本例: ```Cpp class A { public: virtual void func(int val = 1) ... »Learn more »


C++对齐方式

## C++对齐方式 编译器要对c++代码进行编译时需要按照相应的类型为变量分配内存空间,最为人们熟知的就是那五个空间了:栈,堆,全局数据区,常量区和代码区。现在知道了哪些变量存放在哪些空间里了,但是在相应的空间里又是如何存放的呢? ## gcc linux 或默认字节对齐方式 字节对齐的细节和具体编译器实现相关,但一般而言,满足三个准则: 1. 结构体变量的首地址能够被其最宽基... »Learn more »


Google开源代码风格指南python-shell

Python 风格指南 »Learn more »


类成员函数重载、覆盖、隐藏

## 类成员函数重载、覆盖、隐藏 a.成员函数被重载的特征: (1)相同的范围(在同一个类中); (2)函数名字相同; (3)参数不同; (4)virtual 关键字可有可无。 b.覆盖是指派生类函数覆盖基类函数,特征是: (1)不同的范围(分别位于派生类与基类); (2)函数名字相同; (3)参数相同; (4)基类函数必须有virtual 关键字... »Learn more »


健身

程序员的形象往往是羸弱或虚胖的,且不说各种程序员猝死的传闻,或是颈椎病、腰椎病、肩周炎这些耳熟能详的职业病,光是我们的身材就有超过职业发展速度的趋势。锻炼能够提高身体素质,增强宝宝免疫力,以后加班到天亮也不怕啦。 颈椎操动图,减肥动图,赶快拿走,拯救你的颈椎,拯救你的大肚子! »Learn more »


linux开发之便捷配置

linux系统实用美化配置,linux系统实用开发配置。 »Learn more »


栈的应用_解析算术表达式

对计算机的算法来说,直接求算术表达式的值是相当困难的,一般分两步实现算法会更容易: 将算术表达式转换成另一种形式。 计算后缀表达式的值。 第一步比较难,但第二步很简单。对计算机来说,这种分两步的算法比直接解析算法容易的多。 # 中缀表达式(中缀记法) 中缀表达式是一种通用的算术或逻辑公式表示方法,操作符以中缀形式处于操作数的中间。中缀表达式是人们常用的算术表示方法。 虽然人的大脑很容易... »Learn more »


Vue-渐进式JavaScript框架

框架,是一套完整的解决方案,使用框架的时候,需要把你的代码放到框架合适的地方,框架会在合适的时机调用你的代码; - 框架规定了自己的编程方式,是一套完整的解决方案; - 使用框架的时候,由框架控制一切,我们只需要按照规则写代码. »Learn more »


‘=‘是拷贝构造,还是赋值?

观察代码: ``` #include using namespace std; class MyClass { public: MyClass(int i = 0) { cout << i; } MyClass(const MyClass &x;) { cout << 2; } MyClass &ope... »Learn more »


C++静态成员变量和静态成员函数

# C++静态成员变量和静态成员函数 [转][原文](http://blog.163.com/sunshine_linting/blog/static/448933232011810101848652/) > 注意: 类中静态变量在类外初始化格式: <数据类型><类名>::<静态数据成员名>=<值> 加上声明是为了在构造函数之前运行。 ``` private: int... »Learn more »


Django后台集成富文本编辑器simditor

网上有不少开源的富文本编辑器,比如simditor、ueditor、kindedtor、tinymce、CKEditor等,我试用了其中三个编辑器,simditor、ueditor、kindedtor。其中ueditor不仅体量大,写出的HTML代码杂乱冗余,而且在代码区内复制代码时会丢失缩进,很烦人,更重要的是丑。kindeditor没怎么用就扔了,还是因为丑。最后选择了simditor。 »Learn more »


软件设计模式演变

UI层的设计模式——从Script、Code Behind到MVC、MVP、MVVM 因为人的能力并没有“跟上”机器,所以才会出现各种模式、方法、工具等等来补足人的不足,以最大地透支机器性能。就像我前几天在闪存无聊时突然想到的一句: **架构是对客观不足的妥协,规范是对主观不足的妥协**。 当我们需要机器做的事情多了起来,我们就没办法在一个芯片上解决所有事情,所以才会有冯诺依曼模... »Learn more »


UML

This chapter will give you a quick overview of the basics of UML. Keep in mind that this is not a comprehensive tutorial on UML but rather a brief introduction to UML which can be read as a UML tutori »Learn more »


markdown语法实例

Markdown是一种轻量级的易读易写的纯文本标记语言,可实现快速排版且转换成格式丰富的HTML页面。 »Learn more »


Cmake

CMake是一个跨平台的、开源的构建工具。cmake是makefile的上层工具,它们的目的正是为了产生可移植的makefile,并简化自己动手写makefile时的巨大工作量.目前很多开源的项目都可以通过CMake工具来轻松构建工程,例如博客之前分享的openHMD、hidapi、OSVR-Core等等,代码的分享者提供源代码和相应的Cmake配置文件,使用者就可以非常方便的在自己的电脑上... »Learn more »


字符及字符串

## 转义字符 ``` #include #include using namespace std; int main(int argc, char *argv[]) { char str[]="S\065AB"; printf("\n%d", sizeof(str)); //输出5. return 0; } //转义字符\ddd表示8进制, 是一个数 ,所以就有... »Learn more »


Python字符串分割的方法

Python 字符串分割的方法 在平时工作的时候,发现对于字符串分割的方法用的比较多,下面对分割字符串方法进行总结一下: 第一种:split()函数 split()函数应该说是分割字符串使用最多的函数 用法: str.split('分割符') 通过该分割操作后,会返回一个列表。 注:当然如果你的字符串含有一个或者多个空格就直接 str.split() 就可以了 例如:... »Learn more »


rocks cluster 更改ipv6软件yum安装源

# rocks cluster 更改ipv6软件yum安装源 yum安装软件的源改为科大[http://mirrors.ustc.edu.cn/centos的ipv6](http://mirrors.ustc.edu.cn/centos%20%E7%9A%84ipv6)源 首先备份CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo... »Learn more »


异常

### C++中构造函数和析构函数可以抛出异常吗? 答:只有构造函数可以。 析构函数不能抛出异常,处理析构函数异常的正确方式是将异常封装在析构函数内部,而不是抛出异常,如下代码所示。 ``` ~ClassName(){ try{ do_something(); } catch{ //... } } ``` 原因如下... »Learn more »


人工智能图谱解析

机器学习和深度学习是最近红的发紫的热点技术。也算是工作需要,我自己也找了一些学习资料来学习,先从基础开始,逐步深入,计划结合智能运维,分析下人工智能和设备运维的价值和前景。 本篇文章只是把AI学习资料和AI体系架构分享出来,我个人的分析成果也会陆续分享呈现给小伙伴们。下面先从人工智能发展历史、内涵外延、技术体系、行业应用等各个方面,通过思维导图的方式呈现出来... »Learn more »


C++命名空间

+ 掌握:命名空间的作用及定义;如何使用命名空间。 + 了解:使用早期的函数库 重点、难点 - 命名空间的作用及定义;如何使用命名空间。 - 在学习本书前面各章时,读者已经多次看到在程序中用了以下语句: ``` using namespace std; ``` 这就是使用了命名空间std。在本讲中将对它作较详细的介绍。 ## 一、 为什么需要命名空间(问题提出)... »Learn more »


Makefile

Makefiles are a simple way to organize code compilation. This tutorial does not even scratch the surface of what is possible using *make*, but is intended as a starters guide so that you can quickl »Learn more »


搭建异构计算开发环境

linux下搭建异构计算开发环境。[Bumblebee](https://github.com/Bumblebee-Project/Bumblebee)是一套Linux下双显卡切换的解决方案,通过它可以自由的切换集显与独立显卡,做到续航与性能的平衡... »Learn more »