两个简单的问题:简单地说,C我们经常使用xmalloc哪个是分配或中止例程.我用C++实现了它.这是一个正确的无异常实现吗?
template <typename T>
T *xnew(const size_t n)
{
T *p = new (std::nothrow) T[n];
if (p == nullptr)
{
cerr << "Not enough memory\n";
abort();
}
return p;
}
int main()
{
int *p = xnew<int>(5000000000LL);
}
Run Code Online (Sandbox Code Playgroud)
第二个问题,如果我<int>从xnew<int>(5000000000LL);调用中删除,编译器(g ++ 4.7.2)不能再推断,[T = int]尽管返回类型int *仍然存在.这是为什么?
编辑:使用new可能抛出异常的版本是否有任何开销,即使它没有被抛出?当我不是绝对必要的时候,我真的不想使用任何例外.
如何编写一个PL/SQL程序:
ts填充了当前时间戳/日期时间的新列考虑这个简单的"基准":
n :: Int
n = 1000
main = do
print $ length [(a,b,c) | a<-[1..n],b<-[1..n],c<-[1..n],a^2+b^2==c^2]
Run Code Online (Sandbox Code Playgroud)
和适当的C版本:
#include <stdio.h>
int main(void)
{
int a,b,c, N=1000;
int cnt = 0;
for (a=1;a<=N;a++)
for (b=1;b<=N;b++)
for (c=1;c<=N;c++)
if (a*a+b*b==c*c) cnt++;
printf("%d\n", cnt);
}
Run Code Online (Sandbox Code Playgroud)
汇编:
ghc -O2 triangle.hs(ghc 7.4.1)gcc -O2 -o triangle-c triangle.c(gcc 4.6.3)运行时间:
即使对于如此简单且可以很好地优化的程序,Haskell的速度几乎要慢4倍,这是不是很好?Haskell在哪里浪费时间?
我们有使用Entity Framework的.NET 4.0应用程序.应用程序通过TCP远程连接到SQL Server.在局域网上,它很快,但在互联网上流量非常高.
我们想做的就是打开一些,TCP compression但看起来SQL Server 2008不提供此功能.
压缩TCP通信的最简单的解决方案是什么?