小编Yoc*_*mer的帖子

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

从列表中获取随机样本,同时保持项目的排序?

我有一个排序列表,让我们说:(它不仅仅是数字,它是一个用复杂的耗时算法排序的对象列表)

mylist = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ,9  , 10 ]
Run Code Online (Sandbox Code Playgroud)

是否有一些python函数会给我N个项目,但会保留订单吗?

例:

randomList = getRandom(mylist,4)
# randomList = [ 3 , 6 ,7 , 9 ]
randomList = getRandom(mylist,4)
# randomList = [ 1 , 2 , 4 , 8 ]
Run Code Online (Sandbox Code Playgroud)

等等...

python random list sortedlist

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

C#真的比说C++慢吗?

我一直想知道这个问题一段时间了.

当然,C#中有些东西没有针对速度进行优化,因此使用这些对象或语言调整(如LinQ)可能会导致代码变慢.

但是如果你不使用任何这些调整,只需比较C#和C++中相同的代码片段(很容易将它们翻译成另一个).真的会慢得多吗?

我已经看到比较表明在某些情况下C#可能更快,因为理论上JIT编译器应该实时优化代码并获得更好的结果:

管理还是不管理?

我们应该记住,JIT编译器实时编译代码,但这是一次性开销,相同的代码(一旦到达并编译)不需要在运行时再次编译.

除非你创建和销毁数以千计的对象(比如使用String而不是StringBuilder),否则GC不会增加很多开销.用C++做这件事也会很昂贵.

我想提出的另一点是.Net中引入的DLL之间的更好的通信..Net平台的通信比基于托管COM的DLL要好得多.

我没有看到为什么语言应该更慢的任何固有原因,我并不认为C#比C++慢(从经验和缺乏一个好的解释)...

那么,用C#编写的相同代码片段会比C++中的相同代码慢吗?
如果是的话那么为什么?

其他一些参考文献(关于这一点,但没有解释为什么):

如果它比C++慢,你为什么要使用C#?

c# c++ performance

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

模板typedef - 你的工作是什么?

C++ 0x具有模板别名(有时称为模板typedef).看到这里.目前的C++规范没有.

你喜欢用什么来解决这个问题?容器对象还是宏?你觉得它值得吗?

c++ templates type-safety

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

在运行时获取DLL路径

我想从其代码中获取dll的目录(或文件)路径.(不是程序的.exe文件路径)

我尝试了一些我发现的方法:
GetCurrentDir- 获取当前目录路径.
GetModuleFileName - 获取可执行文件的路径.

那么如何才能找到代码所在的dll?
我正在寻找类似于C#的东西Assembly.GetExecutingAssembly

c++ dll

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

扩展方法冲突

假设我在2个不同的命名空间中有2个字符串扩展方法:

namespace test1
{
    public static class MyExtensions
    {
        public static int TestMethod(this String str)
        {
            return 1;
        }
    } 
}

namespace test2
{
    public static class MyExtensions2
    {
        public static int TestMethod(this String str)
        {
            return 2;
        }
    } 
}
Run Code Online (Sandbox Code Playgroud)

例如,这些方法实际上并没有做任何事情.

现在让我们考虑一下这段代码:

using System;
using test1;
using test2;

namespace blah {
    public static class Blah {
        public Blah() {
        string a = "test";
        int i = a.TestMethod(); //Which one is chosen ?
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:

我知道只会选择一种扩展方法.
会是哪一个?为什么? …

c# methods extension-methods conflict namespaces

38
推荐指数
3
解决办法
8665
查看次数

SQL JOIN:USING,ON或WHERE有区别吗?

我想知道SQL在这些连接语句上执行的方式是否有任何不同:

SELECT * FROM a,b WHERE a.ID = b.ID

SELECT * FROM a JOIN b ON a.ID = b.ID

SELECT * FROM a JOIN b USING(ID)
Run Code Online (Sandbox Code Playgroud)

有性能差异吗?还是算法差异?

或者只是语法糖?

sql syntax performance expression join

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

x64中的Visual Studio设计器不起作用

在Visual Studio 2010 64位中,我无法设计我的表单.
我一直收到这个警告(和错误):

Warning 18  
The designer could not be shown for this file because none of the classes within it can be designed.  The designer inspected the following classes in the file: 
MainForm --- The base class 'Blah' could not be loaded.  Ensure the assembly has been referenced and that all projects have been built.
Run Code Online (Sandbox Code Playgroud)

这只发生在我为x64编译时......在x86中,设计师运行良好.

只是想明确我需要项目在x64上工作,因为很多项目的组件都是用x64编译的,如果表单是在x86中则无法工作.

有没有其他人遇到这个并找到了解决方案?

c# 64-bit designer visual-studio-2010

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

如何通过JIT编译器编译泛型?

我知道泛型是由JIT编译的(就像其他所有东西一样),与编译代码时生成的模板形成对比.
问题是可以使用反射在运行时创建新的泛型类型.
这当然会影响通用的约束.哪个已经通过了语义解析器.

有人能解释一下这是如何处理的吗?究竟发生了什么?
(代码生成和语义检查)

c# compiler-construction generics jit

28
推荐指数
1
解决办法
5038
查看次数

提升Shared_pointer NULL

reset()用作shared_pointer的默认值(相当于a NULL).

但是如何检查shared_pointer是否是NULL

这会返回正确的价值吗?

boost::shared_ptr<Blah> blah;
blah.reset()
if (blah == NULL) 
{
    //Does this check if the object was reset() ?
}
Run Code Online (Sandbox Code Playgroud)

c++ boost smart-pointers shared-ptr

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