小编zne*_*eak的帖子

性能:通过Java中的List进行迭代

在Java中迭代遍历列表是否更慢:

for (int i=0;i<list.size();i++) {
    .. list.get(i)
}
Run Code Online (Sandbox Code Playgroud)

而不是:

for (Object o: list) {
    ... o
}
Run Code Online (Sandbox Code Playgroud)

java

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

如果volatile对于线程无用,为什么原子操作需要指向易失性数据?

我从许多来源读到这个volatile关键字 在多线程场景中没有帮助 .但是,这个断言一直受到接受指针的原子操作函数的挑战.volatile

例如,在Mac OS X上,我们有OSAtomic函数系列:

SInt32 OSIncrementAtomic(volatile SInt32 *address);
SInt32 OSDrecrementAtomic(volatile SInt32 *address);
SInt32 OSAddAtomic(SInt32 amount, volatile SInt32 *address);
// ...
Run Code Online (Sandbox Code Playgroud)

似乎volatileWindows 上的关键字类似于Interlocked操作:

LONG __cdecl InterlockedIncrement(__inout LONG volatile *Addend);
LONG __cdecl InterlockedDecrement(__inout LONG volatile *Addend);
Run Code Online (Sandbox Code Playgroud)

似乎在C++ 11中,原子类型具有volatile修饰符的方法,它必须以某种方式表示volatile关键字与原子性有某种关系.

那么,我错过了什么?为什么操作系统供应商和标准库设计者坚持使用volatile关键字进行线程化,如果它没用?

c atomic volatile

28
推荐指数
2
解决办法
3350
查看次数

如何检测到已按下Shift键?

我有一个NSView子类,我希望它在用户按下⇧ Shift键时做出反应.但是,-[NSView keyDown:]当单独使用修改键时,不会调用(我当前覆盖).

如何在按下Shift键时收到通知?

macos cocoa

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

复制ArrayBuffer对象最直接的方法是什么?

我正在使用ArrayBuffer对象,我想复制它们.虽然这对于实际指针来说相当容易memcpy,但我在Javascript中找不到任何直接的方法.

现在,这是我复制我的方式ArrayBuffers:

function copy(buffer)
{
    var bytes = new Uint8Array(buffer);
    var output = new ArrayBuffer(buffer.byteLength);
    var outputBytes = new Uint8Array(output);
    for (var i = 0; i < bytes.length; i++)
        outputBytes[i] = bytes[i];
    return output;
}
Run Code Online (Sandbox Code Playgroud)

有更漂亮的方式吗?

javascript typed-arrays

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

为什么std :: is_assignable返回false与相关的指针类型?

给出两个非常简单的类:

class X
{
};

class Y : public X
{
};
Run Code Online (Sandbox Code Playgroud)

为什么说,随着锵和GCC针对C++ 14,std::is_assignable<X*, Y*>::valuefalsetrue当我面向C++ 11时,我的设置就是Clang.

c++ type-traits c++14

24
推荐指数
2
解决办法
686
查看次数

如果我只想指定一个哈希函数,我应该传递给unordered_map的bucket count参数?

C++ 11的unordered_map默认构造函数如下所示:

explicit unordered_map( size_type bucket_count = /*implementation-defined*/,
                    const hasher& hash = hasher(),
                    const key_equal& equal = key_equal(),
                    const allocator_type& alloc = allocator_type() );
Run Code Online (Sandbox Code Playgroud)

我想unordered_map用自定义哈希函数创建一个,但它是构造函数的第二个参数.

我应该使用什么桶数?是否有一个神奇的价值我可以用来告诉容器自己决定?否则,是否有一种启发式方法可以根据我期望我的地图包含的键数来猜测一个好的桶号?我应该关心吗?

c++ stl unordered-map c++11

23
推荐指数
1
解决办法
3800
查看次数

有什么东西可以替换<ucontext.h>函数吗?

<ucontext.h>不推荐使用用户线程函数,因为它们使用不推荐的C 函数(它们使用带有空括号的函数声明作为参数).

它们有标准替代品吗?我不认为成熟的线程擅长实现协作线程.

c posix user-thread

22
推荐指数
3
解决办法
7325
查看次数

将C char数组转换为String

我有一个与C库互操作的Swift程序.这个C库返回一个char[]内部有数组的结构,如下所示:

struct record
{
    char name[8];
};
Run Code Online (Sandbox Code Playgroud)

该定义被正确导入Swift.但是,该字段被解释为8个元素(类型)的元组,我不知道如何使用Swift 转换为a .Int8(Int8, Int8, Int8, Int8, Int8, Int8, Int8, Int8)String

没有String接受Int8元组的初始化器,并且似乎不可能获得指向元组的第一个元素的指针(因为类型可以是异构的,这并不奇怪).

现在,我最好的想法是创建一个微小的C函数,它接受一个指向结构本身的指针,并name作为char*指针而不是数组返回,并继续使用它.

然而,是否有纯粹的Swift方式呢?

arrays interop tuples swift

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

如何防止SQL Server LocalDB自动关机?

我正在使用SQL Server 2012 Express LocalDB.如果没有活动,实例似乎会在10分钟后自动停止.是否有一种干净的方法来保持实例永远运行?

sql-server localdb

21
推荐指数
2
解决办法
7343
查看次数

有没有办法像Visual Studio一样让Xcode 5自动完成?

Xcode 5现在取代了Xcode 4,我对两个IDE的一个常见抱怨是它们不能非常积极地自动完成.在Visual Studio中,只要您点击非标识符键(如括号,逗号,点,空格等),就会提交自动完成功能.在Xcode 5上,你必须点击标签或输入.

是否有一种已知的方法可以使行为更接近Visual Studio的自动完成?

xcode autocomplete xcode5

20
推荐指数
1
解决办法
5768
查看次数