V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  geelaw  ›  全部回复第 9 页 / 共 170 页
回复总数  3397
1 ... 5  6  7  8  9  10  11  12  13  14 ... 170  
175 天前
回复了 xloger 创建的主题 Java 请教个 Java LinkedList 用法的问题
只有反复修改的情况下才需要考虑数组/链表等数据结构。

>我需要将用户手机的全部图片、视频按时间倒序添加到一个 List 里。基于 Android 的 API 限制,图片和视频的查询是分开的,故有大量的中间插入需求。

这个很简单,你可以先把所有的图片和视频都弄到一个巨大的 ArrayList 里,然后再排序。我没做过 Android 开发,猜测 API 提供按时间顺序分别获取图片、视频的功能,那么你可以先准备好两个 ArrayList ,分别得到正确顺序的图片、视频,然后做一轮归并即可。
176 天前
回复了 zzzkkk 创建的主题 PowerShell powershell setx 变量后无法自身得到变量值
setx 设置的环境变量并不会立刻被 cmd.exe 读取啊,但是 explorer.exe 会知道,所以下次从 explorer.exe 启动 cmd.exe 的时候能 echo %classpath% 看到。

PowerShell 里读取进程环境变量的方式是 $env:EnvironmentVariableName ,而 %classpath% 只是普通字符串。

Write-Verbose $env:classpath -Verbose

就可以在 verbose 流看到了。
@MFWT #14
@aliveyang #16
@hanqian #25

我印象里大多数软件都是不额外建立目录的,但多数软件的安装程序的默认目录都是不存在的目录(比如目录是 C:\Program Files\ProductName )而且如果目标目录安装前已经存在且不是这个软件的旧版本(原地更新的话)会警告用户。

@yigecaiji #36

规范是默认安装在 %LOCALAPPDATA%\Programs (单用户)或者 %PROGRAMFILES%(整个系统)里面,并且建立 ProductName 或者 CompanyName\ProductName 子目录,以及 Windows 应用商店应用由 Windows 部署。
182 天前
回复了 tool2d 创建的主题 程序员 感觉 double 精度不够用啊
第一个考虑的方向是条件数,从三个平直系坐标计算三角形面积,在所给的输入处的条件数是 400 亿,这说明计算结果只能期待 <6 位有效数字。

第二个考虑的方向是误差累积,楼主的算法,绝对误差是 (sum |x_i| + sum |y_i|) * eps (这个界比较松)。

如果先把任意一个点平移到原点,则绝对误差是 (sum |x_i - x_1| + sum |y_i - y_1|) * 2eps ,是更好的策略。
183 天前
回复了 fatyoung 创建的主题 Linux 关于 Linux 进程权限和用户权限的一点疑问
是运维先建立好账户设置好权限,然后再把部署好的程序以那个账户启动。这个问题和是哪种操作系统也没有关系。

> 然后我请求了一个接口,去访问某个文件,那我怎么确认该请求是否有权限访问

如果程序想要知道自己是否有权限访问某个文件,惟一正确的方法是尝试以需要的访问方式(读、写、读写)打开并使用。提前检查后再打开无意义,因为在检查完毕后、打开之前,别的程序可以修改文件的权限;如果不想要访问文件,则是否有权限访问的问题是无意义的。
至于原来的代码为什么不行,假设 batch 是 UTF-8 保存的,且本机代码页是 936 ,那么最终有颜色的输出结果是 "ʲô",这是把 "什么" 用 Windows-936 (~ GB) 编码之后再用 UTF-8 解码,这说明 cmd 设置变量的时候,是用 UTF-8 解读 batch 文件的(从而正确把文件中的字节解读为 "什么"),但是数据传入 findstr.exe 之后变成了 Windows-936 ,这很可能是因为 findstr.exe 使用的不是 WCHAR 而是 CHAR (因此 argv 是根据系统代码页,也就是 936 ,解读的,因此 findstr.exe 内部看到的是 GB 编码的 "什么"),并且在最后 findstr.exe 向控制台以输出了它所得到的字节流(即输出了 GB 编码的 "什么")——但控制台的代码页是 UTF-8 ,因此它把 GB 编码的 "什么" 用 UTF-8 解读并显示。
这段代码相当糟糕,是利用 findstr 这个工具显示文件名,因此你传入的字符串必须是合法的文件名,而且显示的时候会覆盖当前目录下的同名文件——总之就是个不定时炸弹。

如果必须要用 batch ,推荐 https://gist.github.com/mlocati/fdabcaeb8071d5c75a2d51712db24011
否则可以考虑 PowerShell

另外请不要在 bat 里面 chcp ,这是在劫持用户的 console ,而且我没找到如何让 Windows 以固定的编码读取 batch 的功能,它或许永远是以系统代码页读取 batch 并运行的,也可能是按照当前代码页一次读取一行运行的。考虑如下 UTF-8 的 batch:

chcp 932>nul 2>nul
chcp 65001>nul 2>nul && echo ¿

其中 echo 的字符是 U+00BF ,它的 UTF-8 编码是 0xC2 0xBF ,一开始的 932 是 Windows 的 Shift JIS 实现,在这个代码页里 0xC2 不是合法的开头字节,因此在默认的日语 Windows 上执行它会产生不可预知的后果。

实际效果是打印出来的并不是倒转的问号,而是 ツソ 这两个符号。
189 天前
回复了 lurenn 创建的主题 macOS WPS 创建的文档无法被 one drive 同步?
可能要取消选定 OneDrive 的“让 Office 程序处理 Office 文件的同步”?
189 天前
回复了 polobug 创建的主题 问与答 win11 的 DevDrive 有人体验过吗
@mmdsun ReFS 也不算很新了吧,Windows Server 2012 以来的技术了,而且多数 Windows 程序都采用的是 Win32 ,根本无需关心文件系统是什么。

我记得很久以前(几年前)看过 ReFS 会直接删除损坏的文件,搜索了一下只找到今年的一个版本 https://www.zhihu.com/question/594562714/answer/2975876927 观望中
190 天前
回复了 xJogger 创建的主题 发音 GUI 的三种读法
@geelaw #24 更正一下… gēi wū yī 是更“接地气”的说法,严格来说是 gê wu yi (gê̄ wū yī)。
190 天前
回复了 xJogger 创建的主题 发音 GUI 的三种读法
汉语读法是 gēi wū yī,见拉丁字母的汉语读音规定(即汉语拼音名称音)。
190 天前
回复了 xuelang 创建的主题 C++ C++ 链接符号决议 -- 自以为懂了,结果...
@xuelang #18 汉语“决议”是“会议所确定的较重大的事项”的意思,在计算机技术方面应该理解为复杂的选择过程,比如“重载决议”是可接受的说法,因为要根据形参列表和实参列表从多个可能的选项里根据一系列不那么直接的规则选出最合适的。链接里的 symbol resolution 的 resolution 应该译作“解析”,因为这个过程只是简单地查找符号的定义,不存在复杂的规则。
怎么确定是系统结束了进程,还是进程结束了自己?你试过 try catch 了吗? allDevs.max_size() 是多少?
190 天前
回复了 xuelang 创建的主题 C++ C++ 链接符号决议 -- 自以为懂了,结果...
@xuelang #15 链接并不能用来挑选(“决议”) A 的这个定义或那个定义,A 自始自终都只有一个定义。
191 天前
回复了 xuelang 创建的主题 C++ C++ 链接符号决议 -- 自以为懂了,结果...
满足 ODR 的程序,如果同一个名字在多个翻译单元里有定义,那么任意可达的定义都是等价的,因此可以随便选(比如第一个赢)。

随便选最有意义的作用是模板,因为每个使用了某个模板的翻译单元必须包含那个模板的完整定义(需要 SFINAE 和 name lookup ),不能让模板声明在 .hh 里实现在 .cc 里。

更早的时候链接时优化还不流行,因此内联( C++ 意义的 inline )函数可以促进函数在编译时被内联(优化意义的 inline )。

链接并不是“决议”工具。
191 天前
回复了 xuelang 创建的主题 C++ C++ 链接符号决议 -- 自以为懂了,结果...
无论是看代码还是问 ChatGPT 却不查证都是非常糟糕的学习方法,第一步应该是理解 C++ 标准是如何规定的。

文章里无论是 int sum(int, int) 还是 class Demo 都是非常严重的 ODR violation 。

在 [basic.def.odr]/14 里规定了 (14.1) 非内联非模板函数在多个翻译单元中有定义时 (14) 程序不良,且在非模块中无需报错,这适用于 sum 的情况。

在 [basic.def.odr]/14 里规定了 (14.2) 多个翻译单元中有定义的 class 如果不满足 (14.4) 在所有可达的翻译单元中定义是相同的记号( token )序列,则 (14) 程序不良,且在非模块中无需报错,这适用于 class Demo 的情况。

至于某个具体的编译器、链接器产生的什么行为,不过是巧合罢了。
192 天前
回复了 LuckyPocketWatch 创建的主题 C++ 如何判断一个 double 有几位?
建议重新思考你的设计。因为 IEEE-754 双精度数里面 0.000001 等于 0.000000999999999999999954748111825886 ,你希望传入这个数的时候得到 6 还是 7 ?
@thisismr2 #3 描述不是很清楚,比如谁是攻击者、攻击者有哪些能力(即达到何种安全性)。
最简单的场景:C 可以把 K 告诉 D ,然后 D 把 K 告诉 S 。
194 天前
回复了 zzzkkk 创建的主题 C++ fsantinize 弱智
@zzzkkk #47 接续 #50 ,假设数组前面一切可读取的虚拟内存都是 ' ',且假设指针加减运算未定义行为的实现就是访问这些虚拟内存,那么这个程序会因为把 start 减到不可读的虚拟内存地址之后继续读 start 而访问违规,从而崩溃。
1 ... 5  6  7  8  9  10  11  12  13  14 ... 170  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3104 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 40ms · UTC 12:43 · PVG 20:43 · LAX 05:43 · JFK 08:43
Developed with CodeLauncher
♥ Do have faith in what you're doing.