小编Cap*_*ffe的帖子

C中的数学常数PI值

计算PI值是一个复杂的问题,维基百科谈到了为它做的近似,并说很难准确计算PI.

C如何计算PI?它是每次计算还是使用不太准确的固定值?

c

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

堆栈上的多态对象?

之前的一个问题中, 我引用了Stroustrup,了解为什么所有类的公共Object类在c ++中都存在问题.在该引文中有声明:

使用通用基类意味着成本:对象必须被堆分配为多态的;

我真的没有看过两次,因为它在Bjarnes的主页上,我想很多眼睛都会扫描那句话并报告任何错误陈述.

然而,一位评论者指出,情况可能并非如此,回想起来,我找不到任何理由这样做的理由.一个简短的测试用例产生了"VDerived :: f()"的预期结果.

struct VBase
{
    virtual void f()    { cout<<"VBase::f()"<<endl; }
};

struct VDerived:VBase
{
    void f()  { cout<<"VDerived::f()"<<endl; }
};

void test(VBase& obj){
    obj.f();
}

int main(int argc, char** argv) {
    VDerived obj;
    test(obj);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当然,如果测试的形式参数test(VBase obj)是完全不同的,但这不是堆栈与堆参数,而是复制语义.

Bjarne是错误还是我错过了什么?

c++ polymorphism

30
推荐指数
2
解决办法
6701
查看次数

如何在最多进行3N比较时实现std :: make_heap?

我查看了C++ 0x标准,发现要求make_heap不应超过3*N比较.

即堆积无序集合可以在O(N)中完成

   /*  @brief  Construct a heap over a range using comparison functor.
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

来源没有给我任何线索(g ++ 4.4.3)

while(true)+ __parent == 0不是线索,而是对O(N)行为的猜测

template<typename _RandomAccessIterator, typename _Compare>
void
make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
          _Compare __comp)
{

  const _DistanceType __len = __last - __first;
  _DistanceType __parent = (__len - 2) / 2;
  while (true)
    {
      _ValueType __value = _GLIBCXX_MOVE(*(__first + __parent));
      std::__adjust_heap(__first, __parent, __len, _GLIBCXX_MOVE(__value),
                 __comp);
      if (__parent == 0)
        return;
      __parent--;
    }
}
Run Code Online (Sandbox Code Playgroud)

__adjust_heap看起来像一个log N方法:

while ( __secondChild < (__len - 1) …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm big-o stl binary-heap

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

在Scala中实现equals和hashCode的标准习惯是什么?

在Scala中实现equalshashCode方法的标准习惯是什么?

我知道在Scala编程中讨论了首选方法,但我目前无法访问该书.

scala equals hashcode

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

g ++ -Wall没有关于double-> int cast的警告

在以下代码段中,不会生成任何警告.g ++ 4.4.3 -Wall -pedantic

//f is
void f(int );

f(3.14);
double d = 3.14;
int i = d+2;
Run Code Online (Sandbox Code Playgroud)

我有一个强烈的回忆,这是一个警告,有点像"可能失去精确度".它被移除了还是我的记忆在玩弄诡计?

我怎么能用g ++把它变成警告?我发现这是一个有用的警告,还是一个坏主意?

我在http://gcc.gnu.org/onlinedocs/gcc-4.4.5/gcc/Warning-Options.html上找不到合适的内容

c++ g++

21
推荐指数
3
解决办法
3984
查看次数

为什么这个const const const声明有效

一位朋友让我解释原因

const const const const const int const i = 0;
Run Code Online (Sandbox Code Playgroud)

是有效的语法.我拒绝对这个问题有任何想法.虽然我很好奇它是否只是一个语法的东西?

编辑.标签是C++,我的朋友正在引用gcc,所以我应该添加C标签.

c c++

19
推荐指数
1
解决办法
1355
查看次数

为什么新的String("Hello")在C#中无效?

制作背后的逻辑/原因是什么?

String s= new String("Hello World");
Run Code Online (Sandbox Code Playgroud)

C#中是非法的?错误是

`string.String(char*)'的最佳重载方法匹配有一些无效的参数

我对API文档不感兴趣,我对为什么这是非法感兴趣.

是因为汇集静态字符串?像Java池整数(-128)到整数(127)与可怕的结果?(当然还有字符串)

.net c# string constructor

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

Glassfish在哪里访问日志

glassfish访问日志位于哪里?我希望它们在域/ domainX/logs中.是否需要更改设置以激活访问日志记录?

谢谢

glassfish glassfish-3

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

如何检测用户是否上传了大于post_max_size的文件?

我应该如何处理超出post_max_size理智的http上传?

在我的配置post_max_size中比upload_max_filesize 我遇到的问题大几MB :
如果用户上传的文件超过post_max_size

  • _POST数组为空
  • _FILES数组为空,当然其中没有任何错误代码.
  • 没有其他信息通过这些方式可以访问哪种形式的帖子.

部分问题是接收脚本根据POST的内容采取不同的操作.

我也有机会获得_SERVER变量,并能得到线索,发生了什么事,即CONTENT_TYPE,CONTENT_LENGTHREQUEST_METHOD.然而,根据这些内容进行猜测似乎很成问题.

发现MEMORY_LIMIT(设置为相关大小的10倍)和Apaches LimitRequestBody(设置为无限制)没有错.

就目前而言,我甚至很难向用户提供任何有意义的消息.

有没有办法保留一些表格数据,以获得更好的线索,哪些出了问题?我非常不愿意离开php.

php file-upload php-5.3

10
推荐指数
1
解决办法
3007
查看次数

void*作为C中的泛型,是否安全?

准备好一个有点"扭曲"的问题......

我在过去实现了很多数据结构(树,列表,哈希表,图表),使用宏我可以实现某种通用.然而,如果有可能使用void指针实现通用数据结构,我会徘徊,但不知何故,我希望能够使用类型搜索...

我不知道我想说的是否清楚...但基本上我认为将"void*"作为通用并不总是安全的,同时我不认为总是使用宏作为制作通用数据结构的一个好主意(因为基本上预处理器对宏所做的是代码替换),因为如果你环顾网络就可以找到这样的例子.

在我看来,一个好主意可能是,但可能我不对,就是使用宏来为存储在数据结构中的数据建立一个标准接口,在接口函数中我会把代码用于正确的类型检查,给出无效*.受软件工程师techinique的启发,这可能是一个很好的方法.

对于转换语言(C++/Java)来说,可能过于软化的东西肯定是更好的,但事实并非总是如此.

总结一下...... C中的"泛型"问题通常是如何处理的?我依靠你的经验来回答!

c generics

10
推荐指数
1
解决办法
404
查看次数