小编nic*_*ick的帖子

除非std :: bitset被重置,否则boost :: dynamic_bitset比std :: bitset慢

我最近遇到了bitset模板,并且非常想在我当前的项目中使用它们.继续阅读,我发现std::bitset模板必须具有在编译时确定的大小.许多人建议使用它boost::dynamic_bitset来缓解这一要求.

比较两个,我决定做的速度比较set,flipcount方法.

结果很奇怪......我想知道是否有人可以为我阐明它.

代码在帖子的末尾,但我会解释我在这里做的事情.我有一个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)

c++ boost-dynamic-bitset std-bitset

13
推荐指数
1
解决办法
1万
查看次数

Emacs Auctex编译错误:"使用Mx make-directory RET RET创建目录及其父项"

我在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)

emacs latex auctex

3
推荐指数
1
解决办法
1452
查看次数

禁用终端命令

我想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)

linux bash rm ubuntu-12.04

0
推荐指数
1
解决办法
1949
查看次数

标签 统计

auctex ×1

bash ×1

boost-dynamic-bitset ×1

c++ ×1

emacs ×1

latex ×1

linux ×1

rm ×1

std-bitset ×1

ubuntu-12.04 ×1