Tag: C#的

将2D数组传递给C ++函数

我有一个函数,我想作为参数,可变大小的二维数组。 到目前为止,我有这样的: void myFunction(double** myArray){ myArray[x][y] = 5; etc… } 我已经在我的代码中的其他地方声明了一个数组: double anArray[10][10]; 但是,调用myFunction(anArray)给我一个错误。 我不想在传入数组时复制数组。在myFunction所做的任何更改都会改变anArray的状态。 如果我理解正确,我只想传入一个指向二维数组的指针。 该function也需要接受不同大小的数组。 例如, [10][10]和[5][5] 。 我该怎么做?

提高SQLite的每秒插入性能?

优化SQLite是棘手的。 C应用程序的批量插入性能可以从每秒85次插入到每秒超过96,000次插入! 背景:我们正在使用SQLite作为桌面应用程序的一部分。 我们有大量的configuration数据存储在XML文件中,这些数据被parsing并加载到SQLite数据库中,以便在初始化应用程序时进一步处理。 SQLite对于这种情况非常理想,因为它速度很快,不需要专门的configuration,数据库作为单个文件存储在磁盘上。 理由: 最初,我对我所看到的performance感到失望。 事实certificate,SQLite的性能可能会有很大的不同(对于批量插入和select),这取决于数据库的configuration方式以及如何使用API​​。 找出所有的select和技巧并不是一件简单的事情,所以我认为创build这个社区维基条目与Stack Overflow读者分享结果是很谨慎的,以便为其他人省去相同调查的麻烦。 实验:我不是简单地谈论一般意义上的性能提示(即“使用事务!” ),而是最好编写一些C代码并实际测量各种选项的影响。 我们将从一些简单的数据开始: 多伦多市全部交通时间表的28 MB TAB分隔文本文件(约865,000条logging) 我的testing机器是运行Windows XP的3.60 GHz P4。 该代码与Visual C ++ 2005一起编译为“发布”,具有“完全优化”(/ Ox)和优先快速代码(/ Ot)。 我正在使用SQLite“Amalgamation”,直接编译到我的testing应用程序。 SQLite版本我碰巧有一点老(3.6.7),但我怀疑这些结果将是相当于最新版本(请留下评论,如果你不这么认为)。 我们来写一些代码! 代码:一个简单的C程序,逐行读取文本文件,将string拆分为值,然后将数据插入到SQLite数据库中。 在这个“基准”版本的代码中,数据库被创build,但是我们不会实际插入数据: /************************************************************* Baseline code to experiment with SQLite performance. Input data is a 28 MB TAB-delimited text file of the complete Toronto Transit System schedule/route […]

如何parsingXML文件?

有一种简单的方法来parsingC#中的XML文件吗? 如果是这样,什么?

什么是右值,左值,左值,右值和左值?

在C ++ 03中,expression式是右值或左值 。 在C ++ 11中,expression式可以是: 右值 左值 x值 glvalue prvalue 两类分为五类。 什么是这些新的expression类别? 这些新类别如何与现有的右值和左值类别相关联? C ++ 0x中的右值和左值类别与C ++ 03中的相同吗? 为什么需要这些新类别? WG21神只是想把我们这些凡人混为一谈?

为什么不是一个数组参数的大小相同的主要?

为什么不是一个数组的大小作为一个参数发送相同的主? #include <stdio.h> void PrintSize(int p_someArray[10]); int main () { int myArray[10]; printf("%d\n", sizeof(myArray)); /* As expected, 40 */ PrintSize(myArray);/* Prints 4, not 40 */ } void PrintSize(int p_someArray[10]){ printf("%d\n", sizeof(p_someArray)); }

什么是创build单实例应用程序的正确方法?

在.NET(而不是Windows窗体或控制台)下使用C#和WPF,创build只能作为单个实例运行的应用程序的正确方法是什么? 我知道这与一个叫做互斥体的神秘事物有关,很less我能find一个麻烦停下来解释这个是什么的人。 该代码还需要通知已经运行的实例,用户试图启动第二个,也可能传递任何命令行参数(如果存在的话)。

什么是C ++中的“ – >”运算符?

在comp.lang.c++.moderated阅读了C ++ / STL的隐藏特性和黑暗angular色后,我完全惊讶以下代码片段在Visual Studio 2008和G ++ 4.4中编译和工作。 代码如下: #include <stdio.h> int main() { int x = 10; while (x –> 0) // x goes to 0 { printf("%d ", x); } } 我认为这是C,因为它也在GCC中工作。 标准在哪里定义,它来自哪里?

逗号操作符如何工作?

逗号操作符如何在C ++中工作? 例如,如果我这样做: a = b, c; 最后等于b还是c? (是的,我知道这很容易testing – 只需在这里logging下来,以便快速find答案)。 更新:使用逗号运算符时,这个问题暴露了一个细微之处。 只是为了certificate这一点: a = b, c; // a is set to the value of b! a = (b, c); // a is set to the value of c! 这个问题实际上是由代码中的拼写错误引起的。 什么意图是 a = b; c = d; 转换成 a = b, // <- Note comma […]

一个数组的地址是如何等于它在C中的值?

在下面的代码中,指针值和指针地址与预期不同。 但数组值和地址不! 这怎么可能? 产量 my_array = 0022FF00 &my_array = 0022FF00 pointer_to_array = 0022FF00 &pointer_to_array = 0022FEFC #include <stdio.h> int main() { char my_array[100] = "some cool string"; printf("my_array = %p\n", my_array); printf("&my_array = %p\n", &my_array); char *pointer_to_array = my_array; printf("pointer_to_array = %p\n", pointer_to_array); printf("&pointer_to_array = %p\n", &pointer_to_array); printf("Press ENTER to continue…\n"); getchar(); return 0; }

C ++中的struct和class有什么区别?

这个问题已经在C#/ .Net的上下文中提出过了 。 现在我想了解C ++中的结构和类之间的区别。 请讨论技术差异以及在OOdevise中select其中一个的原因。 我将从一个明显的区别开始: 如果您不指定public:或private: :,则默认情况下,结构的成员是公共的; 一个class级的成员默认是私人的。 我相信在C ++规范的不起眼的angular落还有其他的不同之处。