小编Ski*_*ick的帖子

你什么时候使用数组而不是矢量/字符串?

我是初学C++程序员,所以我学会了使用数组而不是向量(这似乎是做事情的一般方法,然后转向向量).

我注意到很多关于SO的答案建议使用向量而不是数组,而字符串则用于char数组.看来这是用C++编写代码的"正确"方法.

总而言之,它何时值得使用经典数组/ char*(如果有的话)?

c++ arrays string vector

11
推荐指数
3
解决办法
7268
查看次数

"(void)new"在C++中意味着什么?

我一直在看一个Qt 教程,它使用了我以前没见过的结构:

 (void) new QShortcut(Qt::Key_Enter, this, SLOT(fire()));
 (void) new QShortcut(Qt::Key_Return, this, SLOT(fire()));
 (void) new QShortcut(Qt::CTRL + Qt::Key_Q, this, SLOT(close()));
Run Code Online (Sandbox Code Playgroud)

我已经尝试了这个没有(void)它仍然编译和工作,所以这是什么目的(void)

c++ void

10
推荐指数
2
解决办法
1946
查看次数

ActiveRecord虚拟属性作为记录属性处理

我遇到了to_json没有呈现我的虚拟属性的问题

class Location < ActiveRecord::Base
    belongs_to :event
    before_create :generate_oid
    validates_associated :event

    attr_accessor :event_oid

    def event_oid
      @event_oid = event.oid
    end
end
Run Code Online (Sandbox Code Playgroud)

event_oid不是返回的数组的一部分:

Location.first.attributes

当使用to_json自动将记录属性序列化为jason时,这对我来说尤其成问题.to_json省略了我的虚拟属性.

如何将虚拟属性视为实际实例属性?

编辑:

to_json只是将我的虚拟属性视为实际属性的方法的一个例子.

activerecord ruby-on-rails

10
推荐指数
1
解决办法
5147
查看次数

极端缩小JavaScript(js1k风格)的良好资源

我确信大多数JavaScripters都知道,有一个新的,以圣诞为主题的js1k.我打算这次进入,但我没有经验来制作这样的缩小代码.有谁知道这种事情的任何好资源?

javascript minify js1k

10
推荐指数
1
解决办法
3300
查看次数

在Heroku上运行Rails单元测试

我已经向Heroku部署了一个应用程序,一切正常.问题是我无法远程运行我的单元测试.我试过了:

heroku rake test:units
Run Code Online (Sandbox Code Playgroud)

heroku rake db:test:prepare
Run Code Online (Sandbox Code Playgroud)

但对于我来说,我得到了一个巨大的堆栈跟踪,结束于:

rake aborted!
undefined method `[]' for nil:NilClass
/app/[id]/home/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.3/lib/active_record/railties/databases.rake:429:in `block (3 levels) in <top (required)>'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:634:in `call'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:634:in `block in execute'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:629:in `each'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:629:in `execute'
Run Code Online (Sandbox Code Playgroud)

我正在运行bamboo-mri-1.9.2堆栈.

到目前为止,我最接近答案的是2009年的博客文章.

ruby-on-rails heroku ruby-on-rails-3

10
推荐指数
3
解决办法
4687
查看次数

Rails没有使用正确版本的Ruby

新的消息

这是发生的事情rails console:

Loading development environment (Rails 3.1.1)
ruby-1.9.2-p290 :001 > RUBY_VERSION
 => "1.8.7" 
Run Code Online (Sandbox Code Playgroud)

这里有一些非常奇怪的东西 - 提示说1.9.2但是RUBY_VERSION显示1.8.7.


我正在使用RVM,但我在Ubuntu上遇到Rails问题.

$ which ruby
/home/nick/.rvm/rubies/ruby-1.9.2-p290/bin/ruby

$rvm list
rvm rubies
=> ruby-1.9.2-p290 [ i686 ]
Run Code Online (Sandbox Code Playgroud)

但如果我这样做,gem env我会得到

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.11
  - RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
  - INSTALLATION DIRECTORY: /home/nick/.rvm/gems/ruby-1.9.2-p290
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /home/nick/.rvm/gems/ruby-1.9.2-p290/bin
Run Code Online (Sandbox Code Playgroud)

当我运行Rails时,如果我这样做puts RUBY_VERSION输出1.8.7.

事实上,在irb,RUBY_VERSION给予 …

ubuntu ruby-on-rails ruby-1.9

10
推荐指数
1
解决办法
4988
查看次数

是否值得向前宣布图书馆类?

我刚开始学习Qt,使用他们的教程.我目前正在使用教程7,我们已经制作了一个新的LCDRange类.LCDRange(.cpp文件)的实现使用Qt QSlider类,因此在.cpp文件中是

#include <QSlider>
Run Code Online (Sandbox Code Playgroud)

但在标题中是一个前向声明:

class QSlider;
Run Code Online (Sandbox Code Playgroud)

根据Qt,

这是另一个经典的技巧,但经常使用的技巧要少得多.因为我们没有在类的接口需要QSlider,只有在实施中,我们使用头文件之类的预先声明,并包括在.cpp文件中的QSlider头文件.

这使得大项目的编译速度更快,因为编译器通常花费大部分时间来解析头文件,而不是实际的源代码.仅这一技巧通常可以将编辑速度提高两倍或更多.

这值得吗?这似乎是有意义的,但是还有一件事要跟踪 - 我觉得将所有内容都包含在头文件中要简单得多.

c++ forward-declaration

8
推荐指数
2
解决办法
3973
查看次数

如何知道Qt中何时连接了新的USB存储设备?

我想知道什么时候USB设备连接到运行我的Qt应用程序的计算机(在Windows中).在我的主要QWidget中,我重新实现了winEventFilter这样:

bool winEventFilter ( MSG * msg, long * result ) {
    qDebug() << msg;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

当我连接USB设备时,我希望qDebug能发送至少一些东西,但我什么也得不到.

我猜我从根本上误解了这个过程 - 这是我的第一个Qt应用程序!

c++ windows usb qt

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

有没有一种简单的方法可以在文本框架中单击并拖动滚动?

我有一个div overflow:auto和一个滚动条,我希望能够拖动内容滚动.我不需要能够选择文本.是否有捷径可寻?一个jQuery插件会很好,否则普通的旧JavaScript会很好.

看来我还没有弄清楚自己.我想滚动一个固定高度的div.我没有拿起滚动条,而是想要在相反方向上单击并拖动文本.就像在iPhone上一样.就像在Photoshop中按住空格并拖动一样.

-------------------
|               | |
|               | |
|               |||
|               | |
|         <----------- click here and drag to scroll.
|               | |
|               | |
-------------------
Run Code Online (Sandbox Code Playgroud)

javascript scroll drag-and-drop

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

如何使用XSLT包装一组相邻元素?

我有一些带<ListItem>元素的XML ,我想用<List>元素包装任何连续的运行.因此,源XML看起来像这样:

<Section>
  <Head>Heading</Head>
  <Para>Blah</Para>
  <ListItem>item 1</ListItem>
  <ListItem>item 2</ListItem>
  <ListItem>item 3</ListItem>
  <ListItem>item 4</ListItem>
  <Para>Something else</Para>
</Section>
Run Code Online (Sandbox Code Playgroud)

我想把它转换成这样的东西:

<Section>
  <Head>Heading</Head>
  <Para>Blah</Para>
  <List>
    <ListItem>item 1</ListItem>
    <ListItem>item 2</ListItem>
    <ListItem>item 3</ListItem>
    <ListItem>item 4</ListItem>
  </List>
  <Para>Something else</Para>
</Section>
Run Code Online (Sandbox Code Playgroud)

使用XSLT.我确信这很明显,但我不能在晚上的这个时候解决这个问题.谢谢!


编辑:大多数人都可以安全地忽略这一点.

这个XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root>
  <Story>
    <Section id="preface">
      <ChapterTitle>Redacted</ChapterTitle>
      <HeadA>Redacted</HeadA>
      <Body>Redacted</Body>
      <BulletListItem>Item1</BulletListItem>
      <BulletListItem>Item2</BulletListItem>
      <BulletListItem>Item3</BulletListItem>
      <BulletListItem>Item4</BulletListItem>
      <HeadA>Redacted</HeadA>
      <Body>Redacted</Body>
      <HeadA>Redacted</HeadA>
      <Body>Redacted</Body>
      <Body>Redacted<Italic>REDACTED</Italic>Redacted</Body>
      <BulletListItem>Second list Item1</BulletListItem>
      <BulletListItem>Second list Item2</BulletListItem>
      <BulletListItem>Second list Item3</BulletListItem>
      <BulletListItem>Second list Item4</BulletListItem>
      <Body>Redacted</Body>
    </Section>
  </Story>
</Root>
Run Code Online (Sandbox Code Playgroud)

有了这个XSL:

<xsl:stylesheet version="1.0" …
Run Code Online (Sandbox Code Playgroud)

xml xslt

8
推荐指数
2
解决办法
3206
查看次数