小编Asm*_*iel的帖子

C中的随机数组

我正在寻找ANSI C中的函数,它可以像PHP那样随机化一个数组shuffle().有这样的功能还是我必须自己编写?如果我必须自己编写,那么最好/最高效的方法是什么?

我的想法到目前为止:

  • 例如,遍历数组100次,并将随机索引与另一个随机索引交换
  • 创建一个新数组并用第一个随机索引填充它,每次检查索引是否已被采用(性能= 0复杂度=严重)

c arrays

37
推荐指数
5
解决办法
8万
查看次数

父回程子中的C++函数

说实话,我真的不知道,怎么问这个问题,所以请不要生气:)

无论如何,我想让我的类中的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

c++ setter inheritance parent-child mutators

5
推荐指数
1
解决办法
2465
查看次数

c:计算中使用的赋值

我有一个问题,我喜欢谷歌,但我不知道该怎么问她/她/它(谷歌:))

已经在几个示例代码中找到了这样的分配(这个特定代码这里起源于他们在网上复制了数字食谱中的代码,第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?

(根据维基百科,赋值运算符返回对受让人的引用,根据自由字典 - 我检查确定 - 是指定某事物的值)

c assignment-operator

3
推荐指数
1
解决办法
150
查看次数

ANSI C拆分字符串

嘿!我坚持使用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 string split ansi

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