所以我觉得我做了一些非常愚蠢的事情,我无法弄清楚这一点.以下程序给我带来了很多痛苦:
#include <iostream>
int time = 0;
int main(int argc, char **argv) {
std::cout << "hi" << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的编译字符串是:clang++ -std=c++1y --verbose -stdlib=libc++ main.cpp -o main.重定义错误是,/usr/include/time.h:116:8: note: previous definition is here并将此--verbose显示为包含路径顺序:
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix
"/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.10.0 -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name main.cpp -mrelocation-model pic -pic-level 2 -mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version 241.9 -v -resource-dir /Library/Developer/CommandLineTools/usr/bin/../lib/clang/6.0 -stdlib=libc++ -std=c++1y -fdeprecated-macro …Run Code Online (Sandbox Code Playgroud) 我来自C++背景,所以我不确定我是否正确地解决了这个问题.但我想要做的是写快速排序,但如果列表的长度小于某个阈值,则回退到插入排序.到目前为止,我有这个代码:
insertionSort :: (Ord a) => [a] -> [a]
insertionSort [] = []
insertionSort (x:xs) = insert x (insertionSort xs)
quickSort :: (Ord a) => [a] -> [a]
quickSort x = qsHelper x (length x)
qsHelper :: (Ord a) => [a] -> Int -> [a]
qsHelper [] _ = []
qsHelper (x:xs) n
| n <= 10 = insertionSort xs
| otherwise = qsHelper before (length before) ++ [x] ++ qsHelper after (length after)
where
before = [a | a …Run Code Online (Sandbox Code Playgroud)