C++string::length、size和strlen的区别
函数声明C++ string 成员函数 length() 等同于 size(),但是和 C 库函数 strlen() 有着本质区别,使用时切勿混淆。首先看一下三个函数的申明:string::length和string::size再来看看cstring里面的strlen,返回的是C风格的字符串长度。
它们之间的区别根本就在于strlen()遇到字符’\0’就停止,而string成员函数length() size()会过滤掉空字符,输出不会被截断。如下例子:
1234567891011121314#include<iostream>#include<cstring>using namespace std;char b[30]={0};int main(){ b[0] = 5; b[1] = 5; b[3] = 5; string a(b,30); // strcpy(b,a.c_str()); cout<<"a.length()="<<a.length()&l ...
matlab—load命令读的数据问题
load读取时遇到的问题今天发现两个有趣的问题
matlab读取使用load命令时有返回值则读取的数据为struct类型,无返回值则为原类型例如a=load(xxx.mat);得到的a为struct类型,使用a=cell2mat(struct2cell(load('xxx.mat')));则为数据之前的类型
文件名如果是以数字开头的[1-9]+xxx.txt,则load进工作区名字为data,如果以非数字形式开头则load进工作区名字为原文件名
01背包
01背包问题表示如下有一个容量为V的背包,还有n个物体。现在忽略物体实际几何形状,我们认为只要背包的剩余容量大于等于物体体积,那就可以装进背包里。每个物体都有两个属性,即体积w和价值v。问:如何向背包装物体才能使背包中物体的总价值最大?
为什么不用贪心?我在第一次做这个题目时考虑的是贪心算法。所谓贪心问题,就是每一步决策都采取最优解,按照此方案最后结果也是最优解。为什么这个问题不能用贪心呢?举个例子我的背包容量为10,而且有4个物体,它们的体积和价值分别为w1 = 8, v1 = 9w2 = 3, v2 = 3w3 = 4, v3 = 4w4 = 3, v4 = 3贪心是每一步采取最优拿法,即每一次都优先拿价值与体积比值最大的物体c1 = v1/w1 = 1.125(最大)c2 = v2/w2 = 1c3 = v3/w3 = 1c4 = v4/w4 = 1所以优先拿第一个物体,随后背包再也 ...
CMD命令行查询电脑硬件信息
查看电脑系统属性:dxdiag
查看系统信息:systeminfo
查询BIOS详细信息:wmic bios
查看CPU详细信息:wmic cpu
查看CPU型号:wmic cpu list brief
查看内存详细信息:wmic memorychip
查看内存条数:wmic memorychip list brief
查看缓存内存:wmic memcache list brief
查看磁盘详细信息:wmic diskdrive
查看盘符格式大小以及剩余空间:wmic logicaldisk
python报错Process finished with exit code -1073740791 (0xC0000409)
情况一 也是网上较多的情况):(显卡)内存不足这个时候,我们可以在pycharm里调一下内存:按shift+ctrl+A ,搜索其中:Xms128m中,Xms是指程序启动时所需要的内存,128m就是大小Xmx1011m中,Xmx是指程序运行时所需要的内存,1011m就是大小将其改大。当然你的硬件要吃得消这个设置
Anaconda报错,需更换镜像源
遇到Anaconda报错迟迟没想到是清华镜像源的问题,输入
1conda config --show
查看channels,看到之前加入的清华镜像源
123conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
删除镜像源后,添加中科大的镜像源
123conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
之后再进行conda更新
1conda update conda
之前所有遇到的问题包括pip命令全部解决了。
总结:(清华镜像慢,还容易出问题 ...
unix学习2
Unix中的编辑器
常用的编辑工具
ed:早期的UNIX系统中的行编辑器
ex:ed的替代产品
edit:ex的简化版本
vi:全屏幕编辑器,在ex上发展改进而来的
Emacs:可视化文本编辑环境
xemacs:可视化编辑工具,具有图形用户界面
这里主要以学习vi为主
vi编辑器vi三种模式
命令行方式:用户进入vi后的初始方式。
插入编辑方式:要使用vi的“i”“a”等命令进行切换,点击ESC键返回命令行方式。主要是在编写的文件中添加或输入文本及程序代码。
末行命令方式:命令输入出现在屏幕的最底部,命令输入完之后,vi自动返回到命令行方式。
如果希望在进入 vi 后,光标处于文件中特定的某行上,可在 vi 命令上加上行号和文件名,其格式如下:vi +行号 文件名
命令行方式下的常用命令使vim进行输入模式的方式是在命令模式状态下输入i、I、a、A、o、O等插入命令(各指令的具体功能下表所示),当编辑文件完成后按esc键即可返回命令模式。
i 在当前光标所在位置之前插入随后输入的文本,光标后的文本相应向右移动
I 相当于光标移动到行首执行 i 命令
o 在光标 ...
高精度-每日手撕
高精度加法:给定两个正整数(不含前导 0),计算它们的和。
输入格式共两行,每行包含一个整数。
输出格式共一行,包含所求的和。
数据范围1≤整数长度≤100000
123456789101112131415161718192021222324252627282930313233#include<iostream>#include<vector>using namespace std;//C = A + Bvector<int> add(vector<int> &A, vector<int> &B){ vector<int> C; int t = 0; for(int i = 0; i < A.size() || i < B.size(); i++){ if(i < A.size()) t += A[i]; if(i < B.size()) t += B[i]; C.push_back(t % 10 ...
报错Could not resolve type alias ‘‘
看到这个问题,很可能以为是实体类未在mybatis-config.xml中配置别名(alias)导致的,所以加上这段代码
12345678<typeAliases><!-- 通过package, 可以直接指定package的名字, mybatis会自动扫描你指定包下面的javabean, 并且默认设置一个别名,默认的名字为: javabean 的首字母小写的非限定类名来作为它的别名。 也可在javabean 加上注解@Alias 来自定义别名, 例如: @Alias(user) <package name="com.dy.entity"/> --> <typeAlias type="com.test.domain.Student" alias="student"/> </typeAliases>
可以看到代码生效了。
unix学习
登录:telnet ip地址Login:usernamePassword:
常用shell:CShell,Kshell,Bshell
常用命令
dir 显示当前信息
whoami 显示当前用户
ls *.c 查找当前目录得.c文件
windows和dos的内部命令:dir, cls, cd, copy, d el, date, md......windows和dos的外部命令:format, fdisk, xcopy, ping
unix内部: ls, cp, cd, pwd, date...... (为shell程序的一部分,由shell程序识别,并在shell中完成运行)
unix外部 : gzip, cc, telnet, ftp (是一些实用程序,系统启动不会加载到内存当中运行时才需要调入内存)
几种不同的shell: B-,K-,C-shell:B-它是UNIX最初使用的Shell并且在每种UNIX 上都可以使用。BShell在Shell编程方面相当优秀,但在处理与用户的交互方面作得不如其他几种ShellC-它更多的考虑了用户界面的友好性,普遍认为Cshell的编程 ...