小编Mik*_*ott的帖子

Visual Studio 2010 C++代码格式化程序

我是Visual Studio中编写C++程序的新手.当我在VS中编写C#程序时,代码格式化程序会更改看起来像这样的代码

for(int i= 0; i<(n+  m) ;  i++){
}
Run Code Online (Sandbox Code Playgroud)

for(int i = 0; i < (n + m); i++)
{
}
Run Code Online (Sandbox Code Playgroud)

这更容易阅读.当我用C++编写相同的东西时,没有任何反应.我试图选择文本并按Ctrl + E,F,但这不起作用.有没有办法在Visual Studio中改进C++代码格式化程序?

c++ code-formatting visual-studio-2010

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

如何在c#中将此结构实现为没有指针的类?

列表的节点,其中每个元素指向下一个元素,列表的头部如下所示:

typedef struct Node {
   int value;
   Node* next;
   Node** head;
} Node;
Run Code Online (Sandbox Code Playgroud)

头可以改变,因此我们使用Node**头.我知道类是作为参考传递的,所以我可以像这样制作前2个属性:

class Node {
  int value;
  Node next;
  ???? 
}
Run Code Online (Sandbox Code Playgroud)

如何制作头属性?

c# struct pointers class

5
推荐指数
2
解决办法
198
查看次数

需要解决这个算法难题的想法

我过去曾经遇到过类似的问题,我仍然不知道如何解决这个问题.问题是这样的:

您将获得一个正整数数组,其大小为n <= 1000且k <= n,这是您必须将数组拆分为的连续子数组的数量.你必须输出最小m,其中m = max {s [1],...,s [k]},s [i]是第i个子阵列的总和.数组中的所有整数都在1到100之间.示例:

Input:                           Output:
5  3  >> n = 5 k = 3             3
2 1 1 2 3
Run Code Online (Sandbox Code Playgroud)

将数组拆分为2 + 1 | 1 + 2 | 3将m最小化.

我的强力想法是让第一个子阵列在位置i(对于所有可能的i)结束,然后尝试以尽可能最好的方式将数组的其余部分分成k-1个子阵列.但是,这是指数级解决方案,永远不会奏效.

所以我正在寻找好的想法来解决它.如果你有,请告诉我.

谢谢你的帮助.

arrays algorithm split partition-problem

4
推荐指数
1
解决办法
688
查看次数

尝试在C#中对数组进行排序时出现编译错误

我正在用C#做作业,需要对数组进行排序.我可以使用排序整数数组

Array.sort<int>(a, delegate(int x, int y) { return y-x;});
Run Code Online (Sandbox Code Playgroud)

但是,如果我想从某个位置和一定长度做到这一点

Array.sort<int>(a, 0, m, delegate(int x, int y) { return y-x;});
Run Code Online (Sandbox Code Playgroud)

我得到编译错误:"无法将匿名方法转换为'System.Collections.Generic.IComparer',因为它不是委托类型".我只是通过使用解决了这个问题

Array.sort<int>(a, 0, m);
Run Code Online (Sandbox Code Playgroud)

并向后做所有其他的事情.为什么它会给我一个错误,如何改变它?

感谢帮助

c# arrays sorting delegates integer

2
推荐指数
1
解决办法
1173
查看次数