问题列表 - 第5919页

快速将一个矢量复制到另一个矢量

我更喜欢两种方式:

void copyVecFast(const vec<int>& original)
{
  vector<int> newVec;
  newVec.reserve(original.size());
  copy(original.begin(),original.end(),back_inserter(newVec));
}

void copyVecFast(vec<int>& original)
{

  vector<int> newVec;
  newVec.swap(original); 
}
Run Code Online (Sandbox Code Playgroud)

你怎么做呢?

c++ algorithm stl

142
推荐指数
6
解决办法
32万
查看次数

将图像序列转换为透明的视频

我看起来应该是一个非常简单的问题,但事实证明它比我想象的要困难得多.这是问题所在:

我有一个相当大的图像序列,由编号的帧组成(Maya的输出,它的价值).图像目前采用Targa(.tga)格式,但如果重要的话,我可以将它们转换为PNG或其他任意格式.重要的是,他们有一个alpha通道.

我想要做的是以编程方式将它们变成视频剪辑.格式并不重要,但它需要无损并具有alpha通道.Quicktime容器中的未压缩视频可能是理想的.

我最初的想法是ffmpeg,但是在浪费了大部分时间之后,它似乎根本没有对alpha通道的支持.我要么缺少某些东西,要么底层的libavcodec不会这样做.

那么,这里的正确方法是什么?像ffmpeg这样的命令行工具会很好,但是在Windows上运行并且可以从脚本调用的任何解决方案都可以.

注意:在视频中使用alpha chanel实际上并不是那么罕见,如果你想将它合成在另一个视频片段或静止图像之上,它真的很有用.据我所知,未压缩的视频,Quicktime动画编解码器和Sorenson Video 3编解码器都支持透明度,我也听说过H.264.我们真正谈论的是32位色深,这得到了广泛支持; Quicktime .mov文件和Windowss .avi文件都可以处理它,也可能更多.

Quicktime Pro非常乐意将图像序列转换为32位.mov文件.点击导出,将颜色深度更改为"百万种颜色+",选择动画编解码器,将质量提高到100,然后就是 - 无损压缩视频,带有alpha字符,并且自编解码器以来它几乎可以在任何地方播放自1.0版以来一直是Quicktime的一部分.问题是,Quicktime Pro没有任何类型的命令行界面(至少在Windows上).ffmpeg支持使用Quicktime Animation编解码器(它称为qtrle)进行编码,但它只支持24位的位深度.

问题是找不到支持Alpha通道的视频格式.Quicktime Animation是理想的,但即使是未压缩的视频也应该可以使用.问题是找到一个支持它的工具.

video command-line transparency ffmpeg codec

33
推荐指数
3
解决办法
4万
查看次数

ActiveRecord :: StatementInvalid:找不到表'tablename'

cis.statbib.org: script/console 
Loading development environment (Rails 2.2.2)
Article.founc>> Article.count()
ActiveRecord::StatementInvalid: Could not find table 'article'
    from /home/hadley/web/cis.statbib.org/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb:29:in `table_structure'
    from /home/hadley/web/cis.statbib.org/vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb:39:in `returning'
...
Run Code Online (Sandbox Code Playgroud)

但它似乎确实存在于数据库中:

db: sqlite3 development.sqlite3 
SQLite version 3.2.8
sqlite> select count(*) from author;
168600
Run Code Online (Sandbox Code Playgroud)

我刚刚更新了所有的宝石,等等.出了什么问题?

sqlite ruby-on-rails

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

CouchDB与RDBMS的优点是什么?

我最近听说过很多关于couchdb的事情,并对它提供的内容感到困惑.

database couchdb

9
推荐指数
2
解决办法
6267
查看次数

为什么在移位32位值时仅使用移位操作数的低5位?(例如(UInt32)1 << 33 == 2)

请考虑以下代码:

UInt32 val = 1;
UInt32 shift31 = val << 31;                    // shift31  == 0x80000000
UInt32 shift32 = val << 32;                    // shift32  == 0x00000001
UInt32 shift33 = val << 33;                    // shift33  == 0x00000002
UInt32 shift33a = (UInt32)((UInt64)val << 33); // shift33a == 0x00000000
Run Code Online (Sandbox Code Playgroud)

它不会生成警告(关于使用大于32的班次),因此它必须是预期的行为.

实际上被放到生成的程序集中的代码(或者至少是Reflector对代码的解释)是

 uint val = 1;
 uint shift31 = val << 0x1f;
 uint shift32 = val;
 uint shift33 = val << 1;
 uint shift33a = val << 0x21;  
Run Code Online (Sandbox Code Playgroud)

IL(再次,使用Reflector)是

L_0000: nop 
L_0001: ldc.i4.1 
L_0002: stloc.0 …
Run Code Online (Sandbox Code Playgroud)

c# bit-shift

14
推荐指数
1
解决办法
1995
查看次数

正则表达式可以匹配相同字符的序列?

一位朋友问我这个问题,我很难过:有没有办法制作一个匹配同一个字符序列的正则表达式?例如,匹配'aaa','bbb',但不是'abc'?

m|\w{2,3}| 
Run Code Online (Sandbox Code Playgroud)

不会这样做,因为它匹配'abc'.

m|a{2,3}| 
Run Code Online (Sandbox Code Playgroud)

不会做的伎俩,因为它不匹配'bbb','ccc'等.

regex perl

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

C#代码简化查询:Null容器和Foreach循环

我经常有类似这样的代码:

if (itm != null)
{
    foreach (type x in itm.subItems())
    {
        //dostuff
    }
}
//do more stuff
Run Code Online (Sandbox Code Playgroud)

//do more stuff省略的情况下,很容易避免额外的foreach循环.通过使用适当的命令来扩展范围(取决于正在发生的事情,这通常意味着return声明或a continue statement).

这种类型的东西倾向于产生箭头代码.我目前有几种方法可以解决这个问题:

  • 使用像 itm = itm == null ? itm.subItems() : emptyArray
  • 允许箭头代码
  • 使用 goto
  • 使用邪恶的范围黑客(包括整个事物,如果声明在一个范围内,然后突破它).在我看来,邪恶的范围黑客基本上等同于goto丑陋和难以阅读,所以我不认为这是一个有效的解决方案.
  • 将一些块重构为新方法.实际上有一些情况下这可能一个很好的解决方案,但大多数情况下它并不合适,因为空引用主要是来自MS函数的错误条件.

有人关心哪些方法被认为更可取?

c#

12
推荐指数
1
解决办法
3968
查看次数

在运行时查找ActiveRecord类的关联?

我想在运行时找到ActiveRecord类的关联...

我们假设我有以下内容:

class Person < ActiveRecord::Base
  has_many :chairs
  has_many :pens
end

class Chair < ActiveRecord::Base
  belongs_to :person
end

class Pen < ActiveRecord::Base
  belongs_to :person
end
Run Code Online (Sandbox Code Playgroud)

如何在运行时发现Person"有很多"椅子和笔,反之亦然?我正在寻找一个返回字符串数组的方法(如果存在这样的方法).即

Person.has_many_assocations 
Run Code Online (Sandbox Code Playgroud)

会回来:

["chairs", "pens"] 
Run Code Online (Sandbox Code Playgroud)

Pen.belongs_to_associations
Run Code Online (Sandbox Code Playgroud)

会回来:

["person"]
Run Code Online (Sandbox Code Playgroud)

我错过了这样存在的方法吗?

谢谢你的帮助.

ruby activerecord ruby-on-rails associations

8
推荐指数
1
解决办法
2685
查看次数

是否存在用于二进制文件解析的Java框架?

我的问题是,我想用一个在JAVA中实现的通用解析器来解析不同类型的二进制文件.也许用一个配置文件来描述文件格式,该配置文件由解析器读取或创建根据某种解析规则解析文件的Java类.

我在互联网上搜索了很多,但在这个主题上几乎找不到任何东西.

我发现的只是处理编译器生成器(Jay,Cojen等)的事情,但我认为我不能用它们来生成解析二进制文件的东西.但我在这个假设上可能是错的.

是否有任何框架特别容易解析二进制文件,或者任何人都可以提示我如何使用解析器/编译器生成器这样做?

更新:我正在寻找可以编写配置文件的东西

file:
  header: FIXED("MAGIC")
  body: content(10)

content:
  value1: BYTE
  value2: LONG
  value3: STRING(10)
Run Code Online (Sandbox Code Playgroud)

它会自动生成一些东西来解析以"MAGIC"开头的文件,然后是内容包的十倍(它本身由一个字节,一个长字节和一个10字节的字符串组成).

Update2:我发现了一些类似我正在寻找的东西," 构造 ",但遗憾的是这是一个Python框架.也许这有助于某人获得一个想法,我正在寻找什么.

java file-io parsing binary-data

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

Web应用程序中的Autofac,我应该在哪里存储容器以便于访问?

我仍然是使用Autofac的新手,我在文档和示例中遗漏的一件事是如何使从Web应用程序中的不同位置轻松访问配置的容器.

我知道我可以使用Autofac控制器工厂自动解决构造函数注入控制器的依赖关系,但是你可能需要解决的其他东西如何还没有注入.

是否有一个我不知道的明显模式?

谢谢!

asp.net dependency-injection inversion-of-control autofac

14
推荐指数
4
解决办法
9251
查看次数