我想看看我的代码(C++)中忽略函数返回值的所有位置.我怎么能用gcc或静态代码分析工具呢?
代码示例错误:
int f(int z) {
return z + (z*2) + z/3 + z*z + 23;
}
int main()
{
int i = 7;
f(i); ///// <<----- here I disregard the return value
return 1;
}
Run Code Online (Sandbox Code Playgroud)
请注意:
例如,我有一个已知sizeof(A)和sizeof(B)的std :: map,而map里面有N个条目.你会如何估计它的内存使用量?我会说它就像是
(sizeof(A) + sizeof(B)) * N * factor
Run Code Online (Sandbox Code Playgroud)
但是因素是什么?可能不同的公式?
也许要求上限更容易?
我正在编写一个shell脚本(我在haskell中的第一个非示例),它应该列出一个目录,获取每个文件大小,执行一些字符串操作(纯代码),然后重命名一些文件.我不确定我做错了什么,所以有两个问题:
error:
Couldn't match expected type `[FilePath]'
against inferred type `IO [FilePath]'
In the second argument of `mapM', namely `fileNames'
In a stmt of a 'do' expression:
files <- (mapM getFileNameAndSize fileNames)
In the expression:
do { fileNames <- getDirectoryContents;
files <- (mapM getFileNameAndSize fileNames);
sortBy cmpFilesBySize files }
Run Code Online (Sandbox Code Playgroud)
码:
getFileNameAndSize fname = do (fname, (withFile fname ReadMode hFileSize))
getFilesWithSizes = do
fileNames <- getDirectoryContents
files <- (mapM getFileNameAndSize fileNames)
sortBy cmpFilesBySize files
Run Code Online (Sandbox Code Playgroud) 我想做以下功能:
if (!map.contains(key)) {
map.put(key, val);
}
Run Code Online (Sandbox Code Playgroud)
更新:让我们假设不是HashMap这样的地图被实现为某种树.
但请注意,它有点低效,因为如果我们进入实际上我们实际搜索地图两次.我其实喜欢这样做:
map.put_if_new_key(key, val);
Run Code Online (Sandbox Code Playgroud)
知道怎么用Java做到这一点?
有系统调用,它允许在Linux的间接系统调用.使用它的原因是什么 - 为什么它比直接调用函数更好?
我有以下代码:
foo :: Int -> [String] -> [(FilePath, Integer)] -> IO Int
foo _ [] _ = return 4
foo _ _ [] = return 5
foo n nameREs pretendentFilesWithSizes = do
result <- (bar n (head nameREs) pretendentFilesWithSizes)
if result == 0
then return 0 -- <========================================== here is the error
else foo n (tail nameREs) pretendentFilesWithSizes
Run Code Online (Sandbox Code Playgroud)
我在上面的评论的行上得到一个错误,错误是:
aaa.hs:56:2:
parse error (possibly incorrect indentation)
Run Code Online (Sandbox Code Playgroud)
我正在使用emacs,没有空格,我不明白我做错了什么.
我是新手,monads让我完全糊涂了.给定一个文件名列表,我想知道是否所有文件都存在.
一般来说,我想做:
import System.Directory
allFilesPresent files = foldr (&&) True (map doesFileExist files)
Run Code Online (Sandbox Code Playgroud)
但是我不知道这样做的正确方法是什么,因为这里IO Bool没有Bool涉及到.
帮助和解释会非常好,谢谢!
在Linux上,pwrite操作(寻找+写入)是原子的,这意味着在具有一个文件描述符的多个线程中执行pwrite-s是安全的.我想使用dup()创建文件描述符副本.现在,拥有fd1和fd2 - 将pwrite-s按预期工作,还是存在竞争条件的危险?
c ×4
c++ ×4
haskell ×3
linux ×3
collections ×1
dictionary ×1
file ×1
gcc ×1
indentation ×1
io ×1
java ×1
memory ×1
monads ×1
stdmap ×1
stl ×1