0 编写一个C++程序
0 编译工具Linux编译工具12345678910111213gcc gcc hello.c -o hello gcc hello -o hello.i -E //预处理 gcc hello.i -o hello.s -S//编译成汇编语言 gcc hello.s -o hello.o -c//汇编成机器语言 gcc hello.o -o hello -lc -lgcc//链接各种库g++ g++ hello.cpp -o hellomake make makefile//识别gcc/g++编译脚本cmake cmake . //识别make脚本,生成makefile windows编译工具1234msvc cl //微软的命令行的编译工具mingw gcc/g++/make//提供在windows环境下的Linux的编译工具 1 C++程序构成函数构成 返回类型 函数名 形参列表 函数体 123int main (){} tips:程序所处理的数据保存在变量中,每个变量都有自己的类型...
12 关键词解释
1 include基本使用12include<iostream>include"a.cpp" 原理 #include是C++预处理器的一部分。预处理器处理程序的源代码,是在编译器之前运行。#include只接受一个参数:头文件名。预处理器用指定的头文件的内容替代每个include。 include的作用是从源代码上的复制粘贴。不会进行逻辑处理,而是直接插入引用的部分。 一个程序的头文件.h不是为了给自己用的,而是为了给其他程序用的。所以,在给别人使用的.h中声明extern int的全局变量很重要。 2 extern基本使用 声明一个变量 不带定义,不申请空间。 1extern int i; 原理 语句:extern int a; 仅仅是一个变量的声明,其并不是在定义变量a,也并未为a分配空间。变量a在所有模块中作为一种全局变量只能被定义一次,否则会出错。 通常来说,在模块的头文件中对本模块提供给其他模块引用的函数和全局变量以关键字extern声明。例如,如果模块B要引用模块A中定义的全局变量和函数时只需包含模块A的头文件即可。这样模块B...
2 STL字符串&向量
字符串、向量和数组 这里讲的是 C++中的处理,置于 C 中的字符串向量和数组,可以自己去复习。 1 命名空间的 using 声明基本使用1234//独立使用名字using namespace::name;//声明空间using namespace 使用规则头文件中不应包含 using 声明。因为会破坏包含该文件的源文件的命名空间。 2 标准库类型 string定义和初始化 string 对象 默认初始化 直接初始化 复制初始化 函数初始化 string 对象上的操作 处理 string 对象中的字符 C++11 新特性的 for 容器遍历。 1234string str("hello world!");for(auto c :str){ cout<<c<<endl;} 使用下标遍历 123456string s("helo");for(int index =0;index != s.size();++index){ cout<<s[index]...
1.C++编译过程详解
编译和链接的过程0 概述程序要运行起来,必须要经过四个步骤:预处理、编译、汇编和链接。接下来通过几个简单的例子来详细讲解一下这些过程。 对于上边用到的几个选项需要说明一下。 使用 gcc 命令不跟任何的选项的话,会默认执行预处理、编译、汇编、链接这整个过程,如果程序没有错,就会得到一个可执行文件,默认为a.out -E选项:提示编译器执行完预处理就停下来,后边的编译、汇编、链接就先不执行了。 -S选项:提示编译器执行完编译就停下来,不去执行汇编和链接了。 -c选项:提示编译器执行完汇编就停下来。 所以,这三个选项相当于是限定了编译器执行操作的停止时间,而不是单独的将某一步拎出来执行。 1 预处理:使用-E选项,表示只进行预编译,对应生成一个 .i 文件。 预处理过程进行的操作: 将所有的“#define”删除,并且展开所有的宏定义 处理所有的条件编译指令,比如“#if”、“#ifdef”、“#elif”、“#else”、“#endif” 处理“#include”预编译指令,将被包含的头文件插入到该编译指令的位置。(这个过程是递归进行的,因为被包含的文件可能还包含...
3.多文件编程的实例
a.ha.cppb.h//只应该包含声明,而不应包含定义。变量的声明、函数的声明。b.cpp说明——解决multiple definition的问题。使用条件编译 使用条件编译控制被引入的文件,防止被多次编译。条件编译解决的是,预处理阶段,某一个文件,多次包含同一个文件。例如,b包含a,c包含a,c又包含b;#include的预处理阶段,c包含了两段a的代码,那么编译过程会出现include的错误。所以在所有的头文件中,应当加上条件编译,在给别人使用过程中,防止被直接或间接包含多次。 使用extern 使用extern对全局变量进行控制。extern解决的是,链接阶段,多个文件包含了同一文件,结果全局变量或函数多次定义的问题。使得头文件中的变量变为声明,在include过程中,被声明了多次。防止多次包含同一个全局变量起冲突。前提是这个模块会被外部使用。如果不可能被外部使用,则不需要使用extern声明。 使用const 使用const定义的常量。旨在文件中内有效,编译器在编译过程中,把用到该常量的地方都替换成了对应的值。
AndroidStudio
AndroidStudio使用教程1 开发体系开发体系 Android Studio编辑器(是一个编辑编译调试发布的图形界面工具,相当于前端) SDK集成开发环境。提供了编译调试发布的环境和命令行脚本。(没有界面的集成环境,相当于后端) gradle编译工具。使用SDK完成编译工作。编译脚本。可以与SDK命令行工具结合,在命令行中使用。也可以与Android Studio结合,在界面工具中使用。 各种其他的插件、工具。包括 SDK插件(cmake、ndk) Androidstudio插件。 SDK工具 SDK命令行工具 apkanalyzer avdmanager lint retrace sdkmanager SDK构建工具 aapt2 apksigner zipalign SDK平台工具 adb etc1tool fastboot logcat 2 gradle使用教程gradle项目结构(Android studio 项目结构) MyApplictaion项目根节点 .gradle 本项目中的gradle编译工具。一般是系统gradle的copy。 ap...
VSCode
intelligense一定要选好辅助的工具。html的辅助工具,代码自动不全等,非常重要。 vscode调试调试十分简单。 参考官方的简单配置launch.json 必要情况下,添加task.json 即可完成调试。调试过程中的变量监控和调用过程显示。
Citavi
Citavi 文献检索与管理工具1 功能说明1.1 相关实体 文献reference overview reference(meta data) content context quotations & comments tasks & locations 知识knowledge highlight quotation summary comment thought 标签(用来管理文献和知识) keyword category group 任务(暂时不做了解) 1.2 功能介绍 检索与导入文献(各种数据库和图书馆、各种检索方式、配合插件) 分析与阅读文献(关键字、类别、分组、注释、评论、引用、元数据检索,,beta-data) 文献与知识管理(category:构建写作计划、创建知识大纲、添加想法) 撰写与发布论文(word插件支持、引文列表) 计划于组织任务(不需要) 团队协作(不需要) 2 具体功能2.1 创建工程 可以创建本地工程和服务器工程project。服务器大小为5G 每一个工程只能容纳100个文献reference,可以使用无...
01卷积神经网络
卷积神经网络 1 计算机视觉 计算机视觉(Computer Vision) 的高速发展标志着新型应用产生的可能,例如自动驾驶、人脸识别、创造新的艺术风格。人们对于计算机视觉的研究也催生了很多机算机视觉与其他领域的交叉成果。一般的计算机视觉问题包括以下几类: 图片分类(Image Classification); 目标检测(Object detection); 神经风格转换(Neural Style Transfer)。 应用计算机视觉时要面临的一个挑战是数据的输入可能会非常大。例如一张 1000x1000x3 的图片,神经网络输入层的维度将高达三百万,使得网络权重 W 非常庞大。这样会造成两个后果: 神经网络结构复杂,数据量相对较少,容易出现过拟合; 所需内存和计算量巨大。 因此,一般的神经网络很难处理蕴含着大量数据的图像。解决这一问题的方法就是使用 卷积神经网络(Convolutional Neural Network, CNN) 。 2 边缘检测卷积运算 我们之前提到过,神经网络由浅层到深层,分别可以检测出图片的边缘特征、局部特征(例如眼睛、鼻子等),到最后面...













