我正在寻找ANSI C中的函数,它可以像PHP那样随机化一个数组shuffle().有这样的功能还是我必须自己编写?如果我必须自己编写,那么最好/最高效的方法是什么?
我的想法到目前为止:
说实话,我真的不知道,怎么问这个问题,所以请不要生气:)
无论如何,我想让我的类中的mutators(setter)返回this以允许类似jQuery,a.name("something").address("somethingelse");
我有一个父类(Entity)和几个子类(Client, Agent etc.).大多数事物的变换器都是从Entity类继承的(比如名称或地址),但它们返回一个Entity对象,所以我不能在它们上面调用Client mutators.
换一种说法:
// name mutator
Entity& Entity::name( const string& name ) {
// [...] checks
_name = name;
return *this;
}
// budgetRange mutator
Client& Client::budgetRange( const long int& range ) {
// [...] checks
_budgetRange = range;
return *this;
}
Run Code Online (Sandbox Code Playgroud)
然后我打电话给它:
Client a; a.name("Dorota Adamczyk").budgetRange(50);
Run Code Online (Sandbox Code Playgroud)
编译器(逻辑上)说,Entity对象没有budgetRange成员(因为name返回一个Entity,而不是Client).
我现在的问题是:我怎么能实现这样的东西?我考虑过重载子类中的所有实体函数,但这不会很好,并且会违背继承的想法:)
提前感谢您的想法:D
我有一个问题,我喜欢谷歌,但我不知道该怎么问她/她/它(谷歌:))
已经在几个示例代码中找到了这样的分配(这个特定代码在这里起源于他们在网上复制了数字食谱中的代码,在第54页).
我尝试在以下行中了解赋值的用法:
wr = (wtemp = wr) * wpr - wi * wpi + wr;
Run Code Online (Sandbox Code Playgroud)
就我自己对编程逻辑的理解而言,我会把它翻译成
wtemp = wr;
wr = wtemp * wpr - wi * wpi + wr;
Run Code Online (Sandbox Code Playgroud)
那是对的吗?还是应该wpr * wpr - wi [...]?或者完全不同的东西:D?
嘿!我坚持使用ANSI C问题,我认为这应该是非常简单的(至少在任何现代语言中都是如此:/).
我的脚本的(临时)目标是分割一个6个字符("123:45")的字符串(字符数组),它表示时间戳分钟:秒(对于音频文件,因此可以有120分钟)到分钟,只是秒.
我尝试了几种方法 - 一般用于查找":"和一种硬编码方法,只是按索引分割字符串但似乎没有工作.
void _splitstr ( char *instr, int index, char *outstr ) {
char temp[3];
int i;
int strl = strlen ( instr );
if ( index == 0 ) {
for ( i = 0; i < 3; ++i ) {
if ( temp[i] != '\0' ) {
temp[i] = instr[i];
}
}
} else if ( index == 1 ) {
for ( i = 6; i > 3; i-- ) { …Run Code Online (Sandbox Code Playgroud) c ×3
ansi ×1
arrays ×1
c++ ×1
inheritance ×1
mutators ×1
parent-child ×1
setter ×1
split ×1
string ×1