问题列表 - 第27301页

为什么固定大小的缓冲区(数组)必须是不安全的?

假设我想要一个7字节(或3或777)的值类型.

我可以这样定义:

public struct Buffer71
{
    public byte b0;
    public byte b1;
    public byte b2;
    public byte b3;
    public byte b4;
    public byte b5;
    public byte b6;
}
Run Code Online (Sandbox Code Playgroud)

定义它的一种更简单的方法是使用固定缓冲区

public struct Buffer72
{
    public unsafe fixed byte bs[7];
}
Run Code Online (Sandbox Code Playgroud)

当然第二个定义更简单.问题在于必须为固定缓冲区提供unsafe关键字.我知道这是使用指针实现的,因此不安全.

我的问题是为什么它必须是不安全的?为什么C#不能提供任意常量长度数组并将它们保存为值类型而不是使其成为C#引用类型数组或不安全缓冲区?

c# arrays unsafe fixed value-type

25
推荐指数
1
解决办法
6460
查看次数

ArrayAccess多维(un)设置?

我有一个类实现ArrayAccess,我试图让它与多维数组一起工作.existsget工作.set并且unset给我一个问题.

class ArrayTest implements ArrayAccess {
    private $_arr = array(
        'test' => array(
            'bar' => 1,
            'baz' => 2
        )
    );

    public function offsetExists($name) {
        return isset($this->_arr[$name]);
    }

    public function offsetSet($name, $value) {
        $this->_arr[$name] = $value;
    }

    public function offsetGet($name) {
        return $this->_arr[$name];
    }

    public function offsetUnset($name) {
        unset($this->_arr[$name]);
    }
}

$arrTest = new ArrayTest();


isset($arrTest['test']['bar']);  // Returns TRUE

echo $arrTest['test']['baz'];    // Echo's 2

unset($arrTest['test']['bar'];   // Error
$arrTest['test']['bar'] = 5; …
Run Code Online (Sandbox Code Playgroud)

php arrays interface multidimensional-array

16
推荐指数
2
解决办法
4607
查看次数

javascript中的utf-8字边界正则表达式

在JavaScript中:

"ab abc cab ab ab".replace(/\bab\b/g, "AB");
Run Code Online (Sandbox Code Playgroud)

正确地给了我:

"AB abc cab AB AB"
Run Code Online (Sandbox Code Playgroud)

当我使用utf-8字符时:

"?? ??? ??? ?? ??".replace(/\b??\b/g, "AB");
Run Code Online (Sandbox Code Playgroud)

字边界运营商似乎并没有工作:

"?? ??? ??? ?? ??"
Run Code Online (Sandbox Code Playgroud)

这个问题有方法解决吗?

javascript regex unicode utf-8 word-boundary

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

转换python协同过滤代码以使用Map Reduce

使用Python,我计算跨项目的余弦相似度.

给定代表购买的事件数据(用户,项目),我有一个由我的用户"购买"的所有项目的列表.

鉴于此输入数据

(user,item)
X,1
X,2
Y,1
Y,2
Z,2
Z,3
Run Code Online (Sandbox Code Playgroud)

我构建了一个python字典

{1: ['X','Y'], 2 : ['X','Y','Z'], 3 : ['Z']}
Run Code Online (Sandbox Code Playgroud)

从那本字典中,我生成了一个买入/未买入的矩阵,还有另一个字典(bnb).

{1 : [1,1,0], 2 : [1,1,1], 3 : [0,0,1]} 
Run Code Online (Sandbox Code Playgroud)

从那里,我通过计算(1,1,0)和(1,1,1)之间的余弦来计算(1,2)之间的相似性,得到0.816496

我是这样做的:

items=[1,2,3]
for item in items:
  for sub in items:
    if sub >= item:    #as to not calculate similarity on the inverse
      sim = coSim( bnb[item], bnb[sub] )
Run Code Online (Sandbox Code Playgroud)

我认为蛮力方法正在扼杀我,它只会随着数据变大而运行得更慢.使用我可靠的笔记本电脑,这个计算在处理8500个用户和3500个项目时运行了几个小时.

我正试图计算我的dict中所有项目的相似度,这比我想要的时间更长.我认为这是MapReduce的一个很好的候选者,但我在键/值对方面遇到了"思考"问题.

或者,问题是我的方法,而不一定是Map Reduce的候选人吗?

python optimization hadoop similarity collaborative-filtering

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

AesManaged和RijndaelManaged

我目前正在开发一个连接到旧的Web服务的Silverlight应用程序.我们的旧网络服务使用silverlight不支持的加密工具.最后,我们决定使用AesManaged进行加密,但是,我们的Web服务不支持AesManaged.他们是一种解密AesManaged到RijndaelManaged的方法吗?

如果是,请您发布样本片段吗?您的反馈非常需要.

谢谢.

cryptography web-services aes rijndaelmanaged silverlight-4.0

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

什么是Rakefile?

我已经开始学习Ruby了,刚刚在NetBeans IDE中尝试了我的第一个hello world程序.我有一个疑问,我可以看到新项目向导创建了一组包结构.它里面有一个"Rakefile".这意味着什么,它的用途是什么?

ruby rakefile

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

退出/ B 0不起作用

我有以下问题:

我创建了一个批处理脚本,在那里调用自己(因为能够并行写入日志).在脚本中,我启动另一个进程(如start startServer.bat),它启动一个java进程并一直保持打开状态.

在我的原始脚本中,我等待30秒,检查进程是否正在运行并执行以下操作:

exit /B 0
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用,窗口显示正在评估退出/ B 0,但窗口仍然保持打开状态.当我用另一个进程关闭窗口(意味着在我的.bat中启动"子"进程)时,我的脚本继续运行.

所以:

scriptA.bat

-> in there I call: start startServer.bat
-> wait 30 seconds
-> check is server is started
-> exit /B 0
Process hangs up!
Run Code Online (Sandbox Code Playgroud)

如果我将另一个脚本包裹起来,那是非常奇怪的,例如:

scriptB.bat

-> call scriptA.bat
-----> in there I call: start startServer.bat
-----> wait 30 seconds
-----> check if server is started
-----> exit /B 0
-> scriptA.bat continues without any hangup!
Run Code Online (Sandbox Code Playgroud)

我也尝试了相同的退出0(没有/ B),同样的结果!在第一种情况下,它挂起,在第二种情况下,我的窗口按预期关闭...

你以前有没有人遇到这样的问题,知道这里有什么问题吗?流程挂断了!

cmd batch-file

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

找到给定数字的小数

如何在java中找到给定数字中的十进制(点).

我从用户那里得到输入,他可能给出整数或浮点值.

我需要找到他输入整数或浮点数,这可能吗?

如果是,请你告诉我.

- 谢谢

java

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

如何使用XmlWriter.Create(...?)实例化抽象类XmlWriter?

只是想澄清一下我对XmlWriter和抽象类的工作原理的理解.

我的想法是,虽然它可以包含可以由继承类使用的基本方法,但是不能实例化抽象类.

因此,在调查XmlWriter时,我发现要实例化XmlWriter,可以调用XmlWriter.Create(....,它返回一个...... XmlWriter的实例,然后可以使用它:

FileStream fs = new FileStream("XML.xml", FileMode.Create);

XmlWriter w = XmlWriter.Create(fs);

XmlSerializer xmlSlr = new XmlSerializer(typeof(TestClass));

xmlSlr.Serialize(fs, tsIn);
Run Code Online (Sandbox Code Playgroud)

经过测试,这显然有效.任何人都可以帮助我了解这里发生了什么.据我所知,这里有或者应该没有"实例"吗?

.net c#

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

需要帮助BOOST_FOREACH /编译器错误

我知道boost或编译器应该是最后的责任,但我在这里看不到另一种解释.我正在使用msvc 2008 SP1并提升1.43.

在下面的代码片段中,执行永远不会离开第三个 BOOST_FOREACH循环

typedef Graph<unsigned, unsigned>::VertexIterator Iter;

Graph<unsigned, unsigned> g;
g.createVertex(0x66);

// works fine
Iter it = g.getVertices().first, end = g.getVertices().second;
for(; it != end; ++it)
    ;

// fine
std::pair<Iter, Iter> p = g.getVertices();
BOOST_FOREACH(unsigned handle, p)
    ;

// fine
unsigned vertex_count = 0;
BOOST_FOREACH(unsigned handle, g.getVertices())
    vertex_count++;

// oops, infinite loop
vertex_count = 0;
BOOST_FOREACH(unsigned handle, g.getVertices()) 
    vertex_count++;

vertex_count = 0;
BOOST_FOREACH(unsigned handle, g.getVertices())
    vertex_count++;

// ... last block repeated 6 times
Run Code Online (Sandbox Code Playgroud)

迭代器代码:

class Iterator 
    : …
Run Code Online (Sandbox Code Playgroud)

c++ boost visual-c++ boost-foreach

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