计算PI值是一个复杂的问题,维基百科谈到了为它做的近似,并说很难准确计算PI.
C如何计算PI?它是每次计算还是使用不太准确的固定值?
在之前的一个问题中, 我引用了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++ 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) 在Scala中实现equals
和hashCode
方法的标准习惯是什么?
我知道在Scala编程中讨论了首选方法,但我目前无法访问该书.
在以下代码段中,不会生成任何警告.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上找不到合适的内容
一位朋友让我解释原因
const const const const const int const i = 0;
Run Code Online (Sandbox Code Playgroud)
是有效的语法.我拒绝对这个问题有任何想法.虽然我很好奇它是否只是一个语法的东西?
编辑.标签是C++,我的朋友正在引用gcc,所以我应该添加C标签.
制作背后的逻辑/原因是什么?
String s= new String("Hello World");
Run Code Online (Sandbox Code Playgroud)
C#中是非法的?错误是
`string.String(char*)'的最佳重载方法匹配有一些无效的参数
我对API文档不感兴趣,我对为什么这是非法感兴趣.
是因为汇集静态字符串?像Java池整数(-128)到整数(127)与可怕的结果?(当然还有字符串)
glassfish访问日志位于哪里?我希望它们在域/ domainX/logs中.是否需要更改设置以激活访问日志记录?
谢谢
我应该如何处理超出post_max_size
理智的http上传?
在我的配置post_max_size
中比upload_max_filesize
我遇到的问题大几MB :
如果用户上传的文件超过post_max_size
部分问题是接收脚本根据POST的内容采取不同的操作.
我也有机会获得_SERVER
变量,并能得到线索,发生了什么事,即CONTENT_TYPE
,CONTENT_LENGTH
和REQUEST_METHOD
.然而,根据这些内容进行猜测似乎很成问题.
发现MEMORY_LIMIT(设置为相关大小的10倍)和Apaches LimitRequestBody(设置为无限制)没有错.
就目前而言,我甚至很难向用户提供任何有意义的消息.
有没有办法保留一些表格数据,以获得更好的线索,哪些出了问题?我非常不愿意离开php.
准备好一个有点"扭曲"的问题......
我在过去实现了很多数据结构(树,列表,哈希表,图表),使用宏我可以实现某种通用.然而,如果有可能使用void指针实现通用数据结构,我会徘徊,但不知何故,我希望能够使用类型搜索...
我不知道我想说的是否清楚...但基本上我认为将"void*"作为通用并不总是安全的,同时我不认为总是使用宏作为制作通用数据结构的一个好主意(因为基本上预处理器对宏所做的是代码替换),因为如果你环顾网络就可以找到这样的例子.
在我看来,一个好主意可能是,但可能我不对,就是使用宏来为存储在数据结构中的数据建立一个标准接口,在接口函数中我会把代码用于正确的类型检查,给出无效*.受软件工程师techinique的启发,这可能是一个很好的方法.
对于转换语言(C++/Java)来说,可能过于软化的东西肯定是更好的,但事实并非总是如此.
总结一下...... C中的"泛型"问题通常是如何处理的?我依靠你的经验来回答!
c++ ×4
c ×3
.net ×1
algorithm ×1
big-o ×1
binary-heap ×1
c# ×1
constructor ×1
equals ×1
file-upload ×1
g++ ×1
generics ×1
glassfish ×1
glassfish-3 ×1
hashcode ×1
php ×1
php-5.3 ×1
polymorphism ×1
scala ×1
stl ×1
string ×1