UVA - 400 Unix ls

/*收获:1. 我觉得最大的收获是,了解了该怎么进行竖向的数据输出并且,以及《入门经典》的做法,并没有先转换为二维数组再输出,而是用了些别的技巧(好像也能算是技巧,具体的看代码吧,这个我也不太好描述)2. string的size()函数的返回类型:之前一直以为是int型,后来看到《入门经典》里面有对size返回值的强制类型转换,于是去查了一下,发现自己以前错得有些离谱啊!~引用博客的总结:那么size()这个函数返回的类型到底是什么呢?一定要记住,绝对不是整形,而是size_type类型的,所以千万不要把size的返回值赋给一个int变量有关这个知识点的blog;http://blog.csdn.net/sanshixia/article/details/12259527此外,在C++ Primer 中文版的第四版,有说明如下:任何存储string的size操作结果的变量必须为 string::size_type类型,特别重要的是,不要把size的返回值赋给一个int变量另外,上面的blog里面还有这样一段话:string::size_type从本质上来说,是一个整型数。关键是由于机器的环境,它的长度有可能不同。 例如:我们在使用 string::find的函数的时候,它返回的类型就是 string::size_type类型。而当find找不到所要找的字符的时候,它返回的是 npos的值,这个值是与size_type相关的。假如,你是用 string s; int rc = s.find(.....); 然后判断,if ( rc == string::npos ) 这样在不同的机器平台上表现就不一样了。如果,你的平台的string::size_type的长度正好和int相匹配,那么这个判断会侥幸正确。但换成另外的平台,有可能 string::size_type的类型是64位长度的,那么判断就完全不正确了。 所以,正确的应该是: string::size_type rc = s.find(.....); 这个时候使用 if ( rc == string::npos )就会正确了。概括一下段意就是:size的返回值会和所用机器有关,所以有时的正确只是侥幸正确所以如果要将size_type类型的数据,和另一个已知类型的数据进行比较要么强制转换 size_type为特定类型要么将已知类型转换为 string::size_type 类型3. 传引用 与 传const类引用最初将 void print(const string& s, int len, char ch) 误写为了void print(string& s, int len, char ch)结果程序报错了,后来找到了两个解释:https://stackoverflow.com/questions/14492158/invalid-initialization-of-non-const-reference-of-type-stdstringhttp://blog.csdn.net/zhenwo123/article/details/8031155*/



#include <iostream>
#include <string>
#include <algorithm>
using namespace std;const int maxcol = 60;
const int maxn = 105;string filenames[maxn];// 输出字符串s,长度不足 len 时补字符 ch
void print(const string& s, int len, char ch)
{cout << s;for (int i = 0; i < len - s.size(); i++)cout << ch;
} int main()
{int n;while (cin >> n){int M = 0; //M为长度最长文件名的长度 for (int i = 0; i < n; i++){cin >> filenames[i];M = max(M, (int)filenames[i].size()); //注意,string的size函数的返回值,一定要加上强制类型转换 }//计算列数cols和行数rowsint cols = (maxcol - M) / (M + 2) + 1, rows = (n - 1) / cols + 1;print("", 60, '-');cout << endl;sort(filenames, filenames + n); //排序for (int r = 0; r < rows; r++){for (int c = 0; c < cols; c++){int idx = c * rows + r;if (idx < n) print(filenames[idx], c == cols - 1 ? M : M + 2, ' ');}cout << endl;} }return 0;
}


转载于:https://www.cnblogs.com/mofushaohua/p/7789440.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javascript中String的fromCharCode()方法

前几天遇到一个bug,后端的模板引擎在输出形如: <div title"111 aaa">内容</div> 这样的内容时,无法输出 空格,所以只能用 来代替: <div title"111 aaa">内容</div> 然后前端使用空格来切分title值: var arr1 title.split( ); 然后…

Zend Server更新至6.2版本——虚拟主机全方位管理

Zend Server自从发布6.0以来&#xff0c;并支持云服务&#xff0c;成为很多PHP程序所选择的Web服务器。 Zend Server 6.2版本从更新内容来看&#xff0c;解决了Web服务器与虚拟主机之间的协同管理。并在细节上&#xff0c;更注重性能控制。 具体更新如下&#xff1a; 虚拟主机管…

Flask 蓝图,数据库链接

蓝图 使用场景 如果代码非常多&#xff0c;要进行归类。不同的功能放在不同的文件&#xff0c;把相关的视图函数也放进去。 蓝图也就是对flask的目录结构进行分配&#xff08;应用于小&#xff0c;中型的程序&#xff09; 当然对于大型项目也可以通过 url_prefix 加前缀的…

python基础-02

常见的数据类型 列表 在python中&#xff0c;列表的创建可以是由[]两个方括号组成的。在其他语言中&#xff0c;被称之为数组。 列表里可以存放一组值&#xff0c;并且系统默认的给列表里的每一个元素以索引值&#xff0c;方便查找和使用。 如下&#xff1a; #创建一个列表&…

Flask扩展系列(八)–用户会话管理

安装和启用 遵循标准的Flask扩展安装和启用方式&#xff0c;先通过pip来安装扩展&#xff1a; $ pip install Flask-Login 接下来创建扩展对象实例&#xff1a; 1 2 3 4 5 from flask import Flask from flask.ext.login import LoginManager app Flask(__name__) login…

onmousemove和onmouseout事件的调用,和js使用双引号、单引号的时候应该注意的问题...

使用js的时候&#xff0c;统一使用双引号&#xff0c;然后通过反斜杠进行转义 ①如果同时使用单引号、和双引号的情况下容易出现问题&#xff0c;导致标签中表示的事件不能调用&#xff0c; ②导致由于标签没有封口而出现样式布局错误 1 <!DOCTYPE html>2 <html>3 …

C++ 学习书目

C书单 第一篇 一些同学问我&#xff0c;如何学好C&#xff0c;我没有别的办法给你们&#xff0c;唯一的办法就是读书&#xff0c;读大量的书&#xff0c;就可以解决。要把C作为日常语言&#xff0c;而不是一种程序语言&#xff0c;这样就好办了。 有人又要问我&#xff0c;那么…

CentOS6.5安装配置

一、网络设置&#xff1a; 1、命令&#xff1a;vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICEeth0 HWADDR00:0C:29:34:11:33 TYPEEthernet UUID6a0e083b-7d65-4afe-9d6f-f42f97659c89 ONBOOTyes NM_CONTROLLEDyes …

js踩过的一些坑

参考我的博客&#xff1a;http://www.isedwardtang.com/2017/08/29/js-bug/转载于:https://www.cnblogs.com/EdwardTang/p/7476769.html

开发中的几款小工具

文本编辑器 ckediter,kindediter,uediter比较多。 http://q.sohu.com/asset/group/ueditor/editor_all.js 马克鳗 用于: 截图测量&#xff0c;取颜色 代码比较工具 Beyond Compare sql书写智能提示工具 SQLPrompt sql自动提示,安装SQLPrompt工具options--->qualification---…

使用PDO总结

PHP使用PDO总结1、php.ini中开启PDO扩展&#xff1a; extensionphp_pdo.dll 重启Apache&#xff01; 2、PDO 构造方法 一共需要三个字段,分别为数据库配置信息&#xff0c;用户名&#xff0c;用户密码 其中数据库配置信息写法mysql:host192.16;post3306;charsetutf-8;dbnametes…

自己写的Python数据库连接类和sql语句拼接方法

python # SQL 查询语句sql "SELECT * FROM user where username %s" % username " and password %s" % password "" 参考&#xff1a; https://www.cnblogs.com/Xjng/p/3821827.html

注册表-显示回收站

WinXP系统下恢复不小心删掉的回收站图标&#xff01; 修改注册表法 1.单击“开始”\“运行”&#xff0c;在“打开”中键入“regedit”&#xff0c;运行注册表编辑器&#xff1b; 2.依次展开注册表至&#xff1a;HKEY&#xff3f;CURRENT&#xff3f;USER\Software\Microsoft\W…

自己如何获取ADO连接字符串

自己如何获取ADO连接字符串 摘自&#xff1a;http://blog.csdn.net/zyq5945/article/details/5586423 有时候我们参考网上的ADO连接字符串写未必就能连接上数据库。今天详细介绍下这个很流行的如何获取ADO字符串的方法&#xff0c;就能很容易直观看到这个连接字符串是否真能连接…

phpstorm+xdebug配置分享

一、选择XDEBUG扩展 xdebug下载地址&#xff1a;https://xdebug.org/download.php 注意&#xff1a;带"ts"是线程安全的意思&#xff0c;"nts"的他没有标示&#xff0c;也就是说&#xff0c;如果是nts的要下载没标示的&#xff0c;下载下来的文件名其实是有…

Flask框架Flask-Login用法分析

参考&#xff1a; https://www.cnblogs.com/cjnmy36723/p/5212047.html https://www.jianshu.com/p/06bd93e21945 Flask-Login插件中带了6种信号&#xff0c;可以基于其中的信号做一些额外工作&#xff0c;比如user_logged_in来记录用户的登录次数和登录IP等。 安装 ? 1 p…

spi驱动 (2):应用与测试

大幅度转载于:https://www.cnblogs.com/zhangyin-ethan/p/7481725.html

Mac安装PostgreSQL和测试安装结果

为什么80%的码农都做不了架构师&#xff1f;>>> 安装&#xff1a;brew install postgresql -v 这一步会安装它和它的各种依赖包&#xff0c;并且初始化元数据库内容添加到开机启动&#xff1a;ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents/ …

不可深交者

1&#xff1a;太过自私&#xff0c;不为他人考虑者&#xff0c;不可深交2&#xff1a;不讲诚信&#xff0c;多次爽约者&#xff0c;不可深交3&#xff1a;己过不该&#xff0c;屡劝屡犯者&#xff0c;不可深交4&#xff1a;不知感恩&#xff0c;过河拆桥者&#xff0c;不可深交…

MySQL--安装linux(5.6版本)

1 版本 目前MySQL数据库按用户群分为社区版(Community Server)和企业版(Enterprise/commercial)。--commercial授权版本 社区版是免费下载的&#xff0c;企业版需要付费且不能在线下载。 社区版分为3种&#xff1a; GA(General Availability)&#xff1a;官方推荐使用的版本&am…