Tag: C#的

为什么从string常量转换为'char *'在C中有效,但在C ++中是无效的

C ++ 11标准(ISO / IEC 14882:2011)在§ C.1.1说: char* p = "abc"; // valid in C, invalid in C++ 对于C ++来说,这是可以的,因为指向string文字的指针是有害的,因为任何修改它的尝试都会导致崩溃。 但为什么它在C中有效? C ++ 11也说: char* p = (char*)"abc"; // OK: cast added 这意味着如果一个强制types被添加到第一个语句中,它就会变成有效的。 为什么演员在C ++中使第二个语句有效,与第一个语句有什么不同? 它不是有害的吗? 如果是这样,标准为什么说没关系?

浮点variables的范围会影响它们的值吗?

如果我们在控制台应用程序上执行下面的C#代码,我们会得到一条消息, The sums are Not equal 。 如果我们在取消注释System.Console.WriteLine()之后执行它,我们将得到一条消息,因为The sums are equal 。 static void Main(string[] args) { float f = Sum(0.1f, 0.2f); float g = Sum(0.1f, 0.2f); //System.Console.WriteLine("f = " + f + " and g = " + g); if (f == g) { System.Console.WriteLine("The sums are equal"); } else { System.Console.WriteLine("The sums are […]

是否暗示所有的局部variables将被复制?

当我用[=]写一个lambda时,是否意味着我所有的局部variables都将被复制到创build的结构的成员中,或者我可以假设只有那些实际在lambda中使用的variables? 例如: void f() { vector<int> v(10000); const int n = 5; const int DivByNCnt = count_if(istream_iterator<int>(cin), istream_iterator<int>(), [=](int i) { return i % n == 0; }); } 以下哪一项是真的? n和v都将被复制 n将被复制,v不会 n将被复制,v可能会或可能不会被复制,取决于implmenentation /优化设置。 假设参数的缘故,vector的拷贝构造函数有副作用。

L1caching小姐的成本是多less?

编辑 :为了参考的目的(如果有人绊倒这个问题),Igor Ostrovsky写了一个关于caching未命中的伟大的职位 。 它讨论了几个不同的问题,并显示示例编号。 结束编辑 我做了一些testing<long story goes here>并且想知道性能差异是否是由于内存caching未命中所致。 下面的代码演示了这个问题,并将其归结为关键的时间部分。 下面的代码有几个循环,以随机顺序访问内存,然后按升序地址顺序访问。 我在XP机器(用VS2005:cl / O2编译)和Linux机器上(gcc -Os)运行它。 两者产生了类似的时间 这些时间以毫秒为单位。 我相信所有循环都在运行,没有被优化(否则它会“立即”运行)。 ***testing20000个节点 总有序时间:888.822899 总计随机时间:2155.846268 这些数字是否有意义? 主要是由于一级caching未命中还是其他事情呢? 有2万2 ^ 2的内存访问,如果每一个都是一个caching未命中,那就是每个小姐约3.2纳秒。 我testing的XP(P4)机器是3.2GHz,我怀疑(但不知道)有一个32KB L1caching和512KB L2。 有20,000个参赛作品(80KB),我认为没有大量的L2错失。 所以这将是(3.2*10^9 cycles/second) * 3.2*10^-9 seconds/miss) = 10.1 cycles/miss 。 这对我来说似乎很高。 也许这不是,或者我的math不好。 我试着测量与VTune的caching未命中,但我有一个BSOD。 现在我无法连接到许可证服务器(grrrr)。 typedef struct stItem { long lData; //char acPad[20]; } LIST_NODE; #if […]

反转一个4x4matrix

我正在寻找如何反转4x4matrix的示例代码实现。 我知道有高斯eleminiation,LU分解等,而不是看他们的细节,我真的只是寻找代码来做到这一点。 语言是理想的C ++,数据以16个浮点数的forms以主要的顺序可用。 谢谢!

为什么C和C ++中有二联图?

今天我学到了C99和C ++中有二字符。 以下是一个有效的程序: %:include <stdio.h> %:ifndef BUFSIZE %:define BUFSIZE 512 %:endif void copy(char d<::>, const char s<::>, int len) <% while (len– >= 0) <% d<:len:> = s<:len:>; %> %> 我的问题是:他们为什么存在?

Uri.ToString()和Uri.AbsoluteUri有什么区别?

@smarx指出,作为对Azure问题的评论, 我认为做blob.Uri.AbsoluteUri比blob.Uri.ToString()更好。 是否有一个原因? Uri.AbsoluteUri的文档指出它“获取绝对URI”, Uri.ToString() “获取指定实例的规范string表示forms”。

pthreads互斥量与信号量

pthread库提供的信号量和互斥量有什么区别?

inheritance:“A”是一个不可访问的“B”

$ cat inheritance.cpp #include <iostream> using namespace std; class A { }; class B : private A { }; int main() { A* ab = new B; } $ $ g++ inheritance.cpp inheritance.cpp: In function 'int main()': inheritance.cpp:9: error: 'A' is an inaccessible base of 'B' $ 我只是不明白这个错误。 据我所知,正如本教程所证实的那样, privateinheritance只应该改变class B的成员对于外部世界的可见性。 我认为私人指定者不仅仅是在这里改变class B成员的知名度。 我得到这个错误是什么,这是什么意思? 基本上在C […]

如何获得ASP.NET核心中的HttpContext.Current?

我们目前正在使用ASP.NET Core重写/转换我们的ASP.NET WebForms应用程序。 尽量避免重新devise。 有一个部分我们在类库中使用HttpContext来检查当前状态。 如何在.NET Core 1.0中访问HttpContext.Current ? var current = HttpContext.Current; if (current == null) { // do something here // string connection = Configuration.GetConnectionString("MyDb"); } 我需要访问这个为了构build当前的应用程序主机。 $"{current.Request.Url.Scheme}://{current.Request.Url.Host}{(current.Request.Url.Port == 80 ? "" : ":" + current.Request.Url.Port)}";