我最近遇到了bitset模板,并且非常想在我当前的项目中使用它们.继续阅读,我发现std::bitset模板必须具有在编译时确定的大小.许多人建议使用它boost::dynamic_bitset来缓解这一要求.
比较两个,我决定做的速度比较set,flip和count方法.
结果很奇怪......我想知道是否有人可以为我阐明它.
代码在帖子的末尾,但我会解释我在这里做的事情.我有一个std::bitset对象(称之为bs)和一个boost::dynamic_bitset对象(称之为dynbs).每个都有n=1000000位.对于上面给定的方法,n按顺序调用每个位上的方法并重复此次R=10000.
使用该std::chrono库,以下是每纳秒的时间:
set
bitset: 267 nsecs
dyn bitset: 18603174546 nsecs
flip
bitset: 73 nsecs
dyn bitset: 18842352867 nsecs
count
bitset: 77 nsecs
dyn bitset: 51 nsecs
Run Code Online (Sandbox Code Playgroud)
boost::dynamic_bitset对于set和,似乎要慢得多flip.
为了使它更有趣,如果reset在运行这些测试之前在两个对象上调用该方法,那么时序是可比较的.他们来了:
set
bitset: 19397779399 nsecs
dyn bitset: 18472863864 nsecs
flip
bitset: 18599248629 nsecs
dyn bitset: 18376267939 nsecs …Run Code Online (Sandbox Code Playgroud) 我在ubuntu 12.04上使用auctex 11.86运行emacs 23.3.1.每当我去编写一个乳胶文件(使用C-c C-c),如果没有错误,一切都编译得很好.但是,如果有任何错误,它会告诉我C-`用来查看错误,如果我这样做,我会收到此错误消息
使用Mx make-directory RET RET创建目录及其父目录
它会在几秒钟之后消失.然后它转到另一个屏幕,解释乳胶代码中的错误.但是,现在我不能简单地C-x 1回到乳胶代码.我必须C-x C-c重启emacs.
这是我的.emacs档案
(setq backup-by-copying t
backup-directory-alist '(("." . "~/.emacsBkups"))
delete-old-versions t
kept-new-versions 5
kept-old-versions 2
version-control t)
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq TeX-PDF-mode t)
;;(require 'ess-site)
;;(ess-toggle-underscore nil)
(require 'whitespace)
(setq whitespace-style '(lines-tail face))
(add-hook 'c-mode-hook 'whitespace-mode)
(add-hook 'c++-mode-hook 'whitespace-mode)
(add-hook 'python-mode-hook 'whitespace-mode)
(add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode))
(c-set-offset (quote cpp-macro) 0 nil)
(setq TeX-view-program-list '(("Evince" "evince …Run Code Online (Sandbox Code Playgroud) 我想rm在某些情况下禁用使用除外.我写了一个remove在.sh文件中调用的函数,它通过了我想在实际调用之前强加的某些检查rm.但是,仍然可以进入终端并简单地调用该rm功能而不是使用remove.有没有办法禁用该rm功能,除非被调用remove?我希望它对于rm登录终端的用户来说就好像该函数"不存在",所有"存在"都是删除功能.
甚至可能更进一步,当用户调用rm它时,会在屏幕上打印一条声明要使用的声明remove.
作为一个更广泛的问题,除了在某些情况下,有没有办法禁用终端命令?我知道我可以为别rm要求root 做一个别名,但这是简单易行的方法.
#!/bin/bash
function rm {
if [ $# -le 0 ]; then
echo "Error: no arguments specified."
else
hasDir=0
for arg in "$@"; do
if [ -d "$arg" ]; then hasDir=1; fi
done
ac="Action canceled."
resp=("y" "n" "e")
sure=" "
while [ "$sure" != "y" ] && [ "$sure" != "n" ]; do …Run Code Online (Sandbox Code Playgroud)