如果我有两个数组,x和y,其中y是x中每个元素的十个数值.现在,我想排序y.但是,y的顺序与x的顺序不同.所以,在排序y中哪个元素与之相关后,我无法分辨,例如x [0].我想要一个"双重排序".非常感谢您的帮助!
在阅读一些编程书籍时,我注意到作者说,在OOP中,你可能会在理解OOP的主要思想时遇到一些困惑.
天啊,是的!我有些困惑.你有没有相同的东西让程序员(甚至是经验丰富的程序员)感到困惑?!
如果你拥有它,你怎么能打败它?!
谢谢
注意:我知道有很多问题可以讨论,但我仍然是初学者,我无法理解这些例子.
我有一个函数原型,如下所示:
int someFunction(const char * sm);
Run Code Online (Sandbox Code Playgroud)
在这里,正如您所知,const char*表示此函数可以接受const或非const指针到char.我在函数体中尝试了类似的东西:
someMemberVar = sm;
Run Code Online (Sandbox Code Playgroud)
someMemberVar只是一个指向char的指针.编译器给我一个错误告诉我:无法从const char*转换为char*.
在这里,我没有传递常量,因此sm或someMemberVar不是常量.那么,编译器正在讨论什么常量?
我只是想知道为什么这个问题发生在我身上.如果你能帮助我,我会很感激.
Program factorial;
uses crt;
var
f, i: Integer;
begin
f:=1;
for i:=1 to 5 do
f:= f * i;
write(f);
readkey;
end.
Run Code Online (Sandbox Code Playgroud)
好的,这很好,结果是120.这是真的.
现在,这是问题所在.如果我要求用户输入数字的值,它将无法正常工作.
Program factorial;
uses crt;
var
i,r: Integer;
begin
write('Enter the number');
read(r);
for i:=1 to r do
r:= r * i;
write(r);
readkey;
end.
Run Code Online (Sandbox Code Playgroud)
如果我写了5,输出将是600.
char *ps;
ps = &anotherChar;
cout << ps;
Run Code Online (Sandbox Code Playgroud)
为什么这会显示anotherChar的值而不仅仅是地址?
在阅读"C++ Primer Plus 5th edition"时,我看到了这段代码:
cin.get(ch);
++ch;
cout << ch;
Run Code Online (Sandbox Code Playgroud)
因此,这将导致在ch之后显示以下字符.但是,如果我这样做:
cin.get(ch);
cout << ch+1;
Run Code Online (Sandbox Code Playgroud)
现在,cout会认为ch是一个int(尝试类型转换).那么,为什么cout这样做呢?为什么如果我在一个字符中加1,它会产生一个数字?为什么:ch ++和ch + 1之间存在差异?
是否有任何内置方法可以删除字符串中的类似字符?
例子:
aaaabbbccc -> abc
aabbccaa -> abc
Run Code Online (Sandbox Code Playgroud)
谢谢
在C++中,你必须明确许多事情,比如使用delete.这为程序员提供了更多选择,但对我来说并不总是有意义.例如:初始化构造函数中的字符数组.为什么不像这样的简单任务可以比这种方式更容易处理:
class x{
enum {Lim =20};
char a[Lim];
x(const char* s){
strncpy(a, s, Lim - 1);
a[Lim - 1] = '\0';
}
}
Run Code Online (Sandbox Code Playgroud)
在,C#中,您所要做的就是:
class loai {
public char[] a;
public loai(char[] a) {
this.a = a;
}
}
Run Code Online (Sandbox Code Playgroud)
PS:昨天很抱歉.我累了,不能很好地表达我的想法.谢谢