我是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++代码格式化程序?
列表的节点,其中每个元素指向下一个元素,列表的头部如下所示:
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)
如何制作头属性?
我过去曾经遇到过类似的问题,我仍然不知道如何解决这个问题.问题是这样的:
您将获得一个正整数数组,其大小为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个子阵列.但是,这是指数级解决方案,永远不会奏效.
所以我正在寻找好的想法来解决它.如果你有,请告诉我.
谢谢你的帮助.
我正在用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)
并向后做所有其他的事情.为什么它会给我一个错误,如何改变它?
感谢帮助