小编Kar*_*k T的帖子

为什么std :: vector比std :: deque更受欢迎?

可能重复:
为什么我更喜欢使用vector来deque

我很好奇为什么它std::vector比这更受欢迎std::deque.Deque几乎和查找一样有效,插入更有效(没有vector :: reserve),允许在前面插入/删除.

Herb Sutter曾经建议如果你想使用矢量,那就更喜欢deque(我在解读).然而,在最近关于编写Modern C++的演讲中,他再次强烈建议将其std::vector视为默认容器.根据我之前链接的GOTW,即使标准也有类似的措辞.

有这种差异的原因吗?它vector是否更简单,更为人所知,还是有技术原因?或者它vector只是一个更酷的名字..?

c++ vector deque

51
推荐指数
5
解决办法
6033
查看次数

如何在Visual c ++中将字节数组转换为十六进制字符串?

方法声明如下:

//some.h
void TDES_Decryption(BYTE *Data, BYTE *Key, BYTE *InitalVector, int Length);
Run Code Online (Sandbox Code Playgroud)

我从以下代码调用此方法:

//some.c
extern "C" __declspec(dllexport) bool _cdecl OnDecryption(LPCTSTR stringKSN, LPCTSTR BDK){
    TDES_Decryption(m_Track1Buffer, m_cryptoKey, init_vector, len);
    return m_Track1Buffer;
}
Run Code Online (Sandbox Code Playgroud)

其中数据类型m_Track1BufferBYTE m_Track1Buffer[1000]; 现在我想在上面的方法中进行一些更改,即想要返回String in hex而不是Byte.我应该如何将其转换m_Track1bufferHex string

c++ string hex visual-c++

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

Mat to unsigned char*

任何人都可以告诉我如何在OpenCV中转换Matunsigned char*数据以及数据是否为数组?另外,我想知道如何能同样的事情可以做的vector<vector<double>>float*,从而使它数组的指针?谢谢.

c++ opencv

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

在Rails模型/表中验证presense vs null false

我正在玩Rails管理员,我注意到了一些事情.

在模型中定义如下的属性,在Rails管理员中计为"必需"

 validates :user, presence: true
Run Code Online (Sandbox Code Playgroud)

但是,表(模式/迁移)中定义的属性仍被视为"可选"

t.datetime "created_at",:null => false
Run Code Online (Sandbox Code Playgroud)

我会假设这两个都是相同的,除了可能出现验证错误的级别.我错了还是Rails管理员错误?这两者是否确保成功保存现场所需的字段或存在差异?

ruby ruby-on-rails rails-admin

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

创建android项目后,"R无法解析为变量"?

在创建新的Android应用程序项目之后,我在MainActivity.java文件中收到错误"R无法解析为变量".

这是它的内容:

package com.example.firstapp;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}
Run Code Online (Sandbox Code Playgroud)

如果应用程序是由Eclipse创建的,选择所有默认选项,为什么会出现此问题?我该如何解决这个问题?

java eclipse android

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

C中的奇怪[1,2]样式数组

是否有一个非常早期的C"标准",其中以下对于二维数组的定义是合法的?

int array[const_x, const_y];
int array2[2, 10];
Run Code Online (Sandbox Code Playgroud)

我偶然发现了一些旧的遗留代码,它使用这个(并且只有这个)符号来表示多维数组.代码是,除了这个奇怪的,完全有效的C(并且令人惊讶地设计得很好).

由于我没有找到这之间的任意转换宏[,][][],我认为这不是恶作剧的形式,似乎从前原文作你的奥尔德C编译器,其接受了这一符号.还是我错过了什么?

编辑:如果它有帮助,它适用于嵌入式微控制器(atmel).根据我的经验,嵌入式编译器并不是标准兼容的众所周知的.

目前的编译器的代码按预期工作(只要它可以从函数的名称,描述和变量猜测),如果我改变这一切[,][][].

c

7
推荐指数
2
解决办法
249
查看次数

功能对象安全风险

我正在阅读一篇关于C++ 11的文章,作者提到使用lambdas的一个优点是避免了函数对象的繁琐和安全风险.

FO有哪些安全风险?

来源:C++ 11中最大的变化以及你应该关注的原因

c++ function-object

6
推荐指数
0
解决办法
263
查看次数

覆盖哈希并将[]运算符设为私有 - 不能再使用|| =

测试代码:

class PrivHash < Hash
  def set(key, val)
     self[key] = val
  end
  def set_maybe(key, val)
    self[key] ||= val
  end
  private
  def []= key, value 
  end
  def [] key
    super            
  end
end
Run Code Online (Sandbox Code Playgroud)

有了这个代码,我都期盼setset_maybe工作.但是,只有set工作并set_maybe失败:

[30] pry(#<TranslationInfo>):1> ph.set_maybe(:a, 1)
NoMethodError: private method `[]' called for {:a=>2}:#Class:0x007f99c5924c38>::PrivHash 
from (pry):56:in `set_maybe'
Run Code Online (Sandbox Code Playgroud)

我认为这self[:b] ||= <x>只是语法糖self[:b] || self[:b] = <x>,但我想这不是因为这有效.

什么错误我是为什么我得到这个错误..我从类中执行此,所以为什么我得到私有方法错误?

ruby overriding operators

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

将shared_ptr传递给OpenGL?

如果我的代码通常像这样:

char* log = new char[logLength];
glGetProgramInfoLog(..., ..., log) 
//Print Log
delete [] log;
Run Code Online (Sandbox Code Playgroud)

如何使用C++ 11智能指针实现相同的结果?谁知道在我有机会删除那段记忆之前会发生什么.

所以我想我需要向下转换为C风格的指针?

c++ c++11

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

如何访问Padrino模型中的current_account?

我正在开发一个具有主应用程序和管理员应用程序的Padrino应用程序.当用户登录会话时,我只需运行以下两行来登录.

account = Account.authenticate(params[:email], params[:password])
set_current_account(account)
Run Code Online (Sandbox Code Playgroud)

在Admin中的任何控制器中使用调试器

current_account
#<Account @id=1 @name="John" @surname="Davies" @email="john.davies@gmail.com" @crypted_password="3456789" @role="admin">
Run Code Online (Sandbox Code Playgroud)

在任何型号的调试器

current_account
*** NameError Exception: undefined local variable or method `current_account' for #<Post @id=1 @question="Why is this not working?" @answer="I have no idea">
Run Code Online (Sandbox Code Playgroud)

我能够访问current_account以找出在Admin应用程序中登录的用户,但是在主应用程序中无法访问此变量.

我想要做的是我为所有模型创建一个活动源或审计跟踪,因此当在任何模型中创建/更新/销毁记录时,会在模型活动中创建一条新记录.话虽这么说,我需要访问模型中的current_account变量.

我搜索了解决方案,并提出了一个建议:

在admin/app.rb中

enable  :sessions
set :session_id, "my-global-session"
Run Code Online (Sandbox Code Playgroud)

在app/app.rb中

register Padrino::Admin::AccessControl
register Padrino::Admin::Helpers

enable :sessions
set :session_id, "my-global-session"
Run Code Online (Sandbox Code Playgroud)

它对我不起作用.有没有办法在我的模型中访问current_account?

感谢您的任何指导或建议.

ruby database authentication padrino audit-logging

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