问题列表 - 第46252页

在C++中编译和打印在编译时的阶乘

template<unsigned int n>
struct Factorial {
    enum { value = n * Factorial<n-1>::value};
};

template<>
struct Factorial<0> {
    enum {value = 1};
};

int main() {
    std::cout << Factorial<5>::value;
    std::cout << Factorial<10>::value;
}
Run Code Online (Sandbox Code Playgroud)

上面的程序在编译期间计算阶乘值.我想在编译时打印阶乘值,而不是在运行时使用cout打印.我们怎样才能在编译时打印阶乘值?

我正在使用VS2009.

谢谢!

c++ templates compile-time

23
推荐指数
2
解决办法
7804
查看次数

某些基本操作的CPU成本数量级

在回答了那个问题并且被拒绝后,我想和你一起检查一下.

为了得到我编写的代码成本的草案,我倾向于以这种方式扩展操作.

  • 堆分配比堆栈分配慢大约1000倍.
  • 具有屏幕/输出的IO比堆分配慢大约1000倍.
  • 硬盘上的IO比屏幕上的图形IO慢大约1000倍.

您认为这是正确的假设/数量级/估计吗?

(当然,没有什么比真正的应用程序分析:-))

编辑:作为根据你的答案和评论的第一个结论,可以说我的数字1000被大大高估了.

c++ performance memory-management

2
推荐指数
1
解决办法
639
查看次数

在Android设备上吹入MIC时如何获得振幅

在Android设备中吹入MIC时如何获得振幅.

MediaRecorder recorder = new MediaRecorder();
   recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

   Timer timer = new Timer();
   timer.scheduleAtFixedRate(new RecorderTask(recorder), 0, 1000);

private class RecorderTask extends TimerTask {
private MediaRecorder recorder;

public RecorderTask(MediaRecorder recorder) {
    this.recorder = recorder;
}

public void run() {
    Log.v("", "amplitude is" + recorder.getMaxAmplitude());
}
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

ERROR/AndroidRuntime(20927): Caused by: java.lang.RuntimeException: setAudioSource failed.
ERROR/AndroidRuntime(20927): at android.media.MediaRecorder.setAudioSource(Native Method)
Run Code Online (Sandbox Code Playgroud)

android

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

登录块 - drupal

是否可以在drupal中删除登录块?如果我删除登录块,如何登录drupal给adminestrator用户?

drupal login

2
推荐指数
1
解决办法
861
查看次数

在hibernate应用程序中设置字节码提供程序的问题

我试图添加cglib作为默认字节码提供程序.我正在使用hibernate.cfg.xml文件来配置会话工厂.

<property name="hibernate.bytecode.provider">cglib</property>
Run Code Online (Sandbox Code Playgroud)

我的配置文件中的上面一行代码不会对行为进行任何更改.它仍设置javassist为字节代码提供程序.

原来是'javaassist'被设置为默认提供者.此配置在环境表单hibernate.properties文件中更新.除了Environment类的静态初始化程序之外,我没有找到任何对字节代码提供程序创建者方法的引用.

是否有任何明确的方法从xml配置文件中分配默认字节代码生成器.

hibernate

4
推荐指数
1
解决办法
4406
查看次数

如何使用 PrefixStyle 和 ProtoBuf-net 获取长度数?

在下面的示例中,如何使用 PrefixStyle 和 ProtoBuf-net 获取长度数?

PrefixStyle.Base128 和 PrefixStyle.Fixed32 有什么区别?

谢谢!

            PerfTest clone;
            using (MemoryStream ms = new MemoryStream())
            {
                Serializer.SerializeWithLengthPrefix(ms, obj,PrefixStyle.Base128);
                byte[] raw = ms.ToArray();
                ms.Position = 0;
                clone = Serializer.DeserializeWithLengthPrefix<PerfTest>(ms,PrefixStyle.Base128);

            }
Run Code Online (Sandbox Code Playgroud)

编辑:使用字节数组下方的代码长度为 22。为什么 TryReadLengthPrefix 返回 21?肯定是应该返回22?

           PerfTest clone;
            using (MemoryStream ms = new MemoryStream())
            {
                Serializer.SerializeWithLengthPrefix(ms, obj,PrefixStyle.Base128);
                byte[] raw = ms.ToArray();
                ms.Position = 0;

                int bArrayLen = ms.ToArray().Length; //returns 22

                int len;// set to 21. Why not 22?
                Serializer.TryReadLengthPrefix(ms, PrefixStyle.Base128,out len);

                clone = Serializer.DeserializeWithLengthPrefix<PerfTest>(ms,PrefixStyle.Fixed32);

            }
Run Code Online (Sandbox Code Playgroud)

c# protocol-buffers protobuf-net

4
推荐指数
1
解决办法
2773
查看次数

通过改变ActionController :: Base#page_cache_directory在Heroku上使用Jammit进行静态资产缓存

我正在尝试使用Jammit来打包部署在Heroku上的Rails应用程序的CSS和JS,由于Heroku的只读文件系统而无法开箱即用.我已经看到的每个如何做到这一点的例子都建议提前构建所有打包的资产文件.由于Heroku基于Git的部署,这意味着每次这些文件发生变化时,您都需要对存储库进行单独的提交,这对我来说是不可接受的解决方案.相反,我想改变Jammit用来编写缓存包的路径#{Rails.root}/tmp/assets(通过更改ActionController::Base#page_cache_directory),这在Heroku上是可写的.

我不明白的是如何使用缓存文件而不必每次都访问Rails堆栈,即使使用缓存包的默认路径也是如此.让我解释一下我的意思:

当您使用Jammit的帮助程序包含一个包时,它看起来像这样:

<%= include_javascripts :application %>
Run Code Online (Sandbox Code Playgroud)

生成此脚本标记:

<script src="/assets/application.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

当浏览器请求此URL时,实际发生的是它被路由到Jammit::Controller#package,它将包的内容呈现给浏览器,然后将缓存的副本写入#{page_cache_directory}/assets/application.js.我们的想法是,这个缓存文件是在第一个请求的基础上构建的,后续请求应直接为缓存文件提供服务,而不需要访问Rails堆栈.我查看了Jammit代码,但我看不出这是怎么发生的.什么阻止后续请求/assets/application.js简单地Jammit::Controller再次路由到从不使用缓存文件?

我的猜测是有一个Rack中间件,我没有看到它存在服务文件,如果它存在,并将请求转发给控制器,如果它没有.如果是这样的话,代码在哪里?它在改变时会如何工作ActionController::Base#page_cache_directory(有效地改变Jammit编写缓存包的位置)?由于#{Rails.root}/tmp位于公共文档根目录之上,因此没有映射到该路径的URL.

ruby-on-rails heroku jammit

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

在pdf文件中搜索字符串

我正在研究一个有几个pdf文件的学校项目.应该按名称功能搜索,我只需输入学生的姓名,所有带有他/她姓名的pdf文件都应该打开.做这个的最好方式是什么?我在网上寻找解决方案,我想出的就是iTextSharp,它让人更加困惑.

这可能吗?也许有人可以给我一个教程或其他东西的链接.:) 非常感谢你.

.net c# pdf string search

5
推荐指数
1
解决办法
7055
查看次数

如何获取c#上所有SQl数据类型的列表?

有没有办法在c#上获取所有Sql数据类型的列表?

我知道我们有一个名为SQlDbType的Enum,它包含所有的Sql数据类型,但是我们可以将Enum转换为字符串数组吗?

我只想获得一些包含所有Sql数据类型的列表,而不是逐个编写它们并将它们添加到我的字符串数组中.

c# sql t-sql

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

正则表达式从html页面提取数据

我想从html页面中提取所有锚标签.我在Linux中使用它.

lynx --source http://www.imdb.com | egrep "<a[^>]*>"
Run Code Online (Sandbox Code Playgroud)

但是这没有按预期工作,因为结果包含不需要的结果

<a class="amazon-affiliate-site-name" href="http://www.fabric.com">Fabric</a><br>
Run Code Online (Sandbox Code Playgroud)

我想要的

<a href >...</a>
Run Code Online (Sandbox Code Playgroud)

有什么好办法吗?

regex linux bash grep lynx

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