小编Mar*_*n B的帖子

运营商可以用作功能吗?(C++)

这类似于我问过的另一个问题,但是,我创建了一个表达式类,其工作原理如下:

expression<int, int> exp(10, 11, GreaterThan);
//expression<typename T, typename U> exp(T val1, U val2, oper op);
//where oper is a pointer to bool function(T, U)
Run Code Online (Sandbox Code Playgroud)

其中GreaterThan是先前定义的函数.我想知道为什么我不能这样做:

expression<int, int> exp(10, 11, >);
Run Code Online (Sandbox Code Playgroud)

特别是当>超载时

bool operator>(int a, int a){return (a > b);}
Run Code Online (Sandbox Code Playgroud)

这与GreaterThan相同:

bool GreaterThan(int a, int b){return (a > b);}
Run Code Online (Sandbox Code Playgroud)

一个返回bool并接受两个参数的函数.

c++ function-pointers operator-overloading

3
推荐指数
2
解决办法
398
查看次数

在没有FPU的设备中使用C++中的定点运算的好处

我想为没有浮点单元的ARM设备优化我的C++代码.我的大多数函数都使用浮点数,我正在考虑将它们更改为定点.

在ARM设备的情况下是否有真正的好处,或者编译器是否足够智能自己做到这一点?

例如,这对ARM设备更有效

//unsigned char const* input
unsigned int a, b;
a= *input++ << 12; 
b= *input++ << 12; 
a*=1024;    //0.25 shifted 12 bits
b*=1024;    //0.25 shifted 12 bits
*output++ = (a+b) >> 24;
Run Code Online (Sandbox Code Playgroud)

比做

float a,b;
a= *input++;
b= *input++;
a=a/4;
b=a/4;
*output++ = a+b;
Run Code Online (Sandbox Code Playgroud)

c++ optimization arm fixed-point

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

在没有窗口的情况下运行控制台应用程序

我有3个控制台程序(.exe),我想从一个控制台应用程序运行它们而不显示3个控制台程序的窗口。所有程序都是用VC ++编写的。关于如何执行此操作的任何建议?

c c++ visual-c++

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

多次调用一个函数,但使用上次存储的变量值

我试图制作一个小游戏,你可以选择种植什么,有一个金钱系统。

我创建了一个函数soldSystem,在该函数中我使用 switch 来确定植物类型以及每种植物的成本。而在main我打印有关的植物和带如果我印钱的信息。它不像我想要的那样工作。一个例子:我有 100 美元,我种了 50 美元,当我卖掉它时,我有 150 美元,但是当我种植另一件事时,它又从 100 美元开始。


int soldSystem(int moneyNum) {
    int money;
    money = 100;
    int i;
    i = 1;
    while (i < 2) {
        switch (moneyNum)
        {
        case 0: {
            if (money >= 50) {
                cout << "Tomatoes planted\n";
                money = money - 50;
                cout << "You have :" << money << " Dollars" << endl;
                cout << "\n";
                cout << "Tomatoes Sold\n";
                money = money + 100;
            } …
Run Code Online (Sandbox Code Playgroud)

c++

3
推荐指数
2
解决办法
90
查看次数

使用gnu g ++在Windows中进行堆栈限制的解决方法

我用GNU g ++构建并编译了一个命令行程序,它出于多种原因"溢出"堆栈,主要是深度继承,创建了大量对象等等.所以我在Mac OS X上遵循这个解决方法来解决链接时的问题:

-Wl,-stack_size,0x10000000,-stack_addr,0xc0000000
Run Code Online (Sandbox Code Playgroud)

在Linux下,我只是尝试过ulimit -s unlimited; 以这种方式运行程序不再产生分段错误

但是当尝试使用GNU g ++在Windows上编译它时,编译器无法识别

-Wl,-stack_size,0x10000000,-stack_addr,0xc0000000
Run Code Online (Sandbox Code Playgroud)

您还可以使用哪种其他选项作为问题的解决方法?

提前致谢

c++ gnu

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

与对齐有关的问题

在函数中的局部范围内声明时,将所有相同类型的变量组合在一起是一种好的做法吗?如果是,为什么?它是否解决了内存对齐问题?

c alignment

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

C编程问题关于哈希表的实现

我有一个关于哈希表实现的C编程问题.我已经实现了哈希表来存储一些字符串.我在处理哈希冲突时遇到了问题.我遵循链接链接列表方法来克服这个问题,但不知何故,我的代码表现不同.我无法调试它.有人可以帮忙吗?

这就是我所面对的:第一次说,我插入一个名为gaur的字符串.我的哈希映射计算索引为0并成功插入字符串.但是,当另一个字符串的哈希值在计算时,结果为0时,我的先前值被覆盖,即gaur将被新字符串替换.

这是我的代码:

struct list
{ 
 char *string;
 struct list *next; 
};

struct hash_table
{
 int size;     /* the size of the table */
 struct list **table; /* the table elements */
}; 

struct hash_table *create_hash_table(int size)
{
    struct hash_table *new_table;
    int i;

    if (size<1) return NULL; /* invalid size for table */

    /* Attempt to allocate memory for the table structure */
    if ((new_table = malloc(sizeof(struct hash_table))) == NULL) {
        return NULL;
    }

    /* Attempt to allocate memory for …
Run Code Online (Sandbox Code Playgroud)

c hashtable

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

如何在运行时从内存访问C结构成员?

我们有一个C结构说

struct info{
    int no;
    char first_name[20];
    char last_name[20];
    char status;
}
Run Code Online (Sandbox Code Playgroud)

在运行时,当我们试图通过他们的名字来访问这些成员,说info_var.noinfo_var.first_name,或者我们用的指针结构,info_ptr->no或者info_ptr->first_name,如何在这些个别成员访问?

我的意思是,结构将按成员的形式存储以及一些必要的填充,但运行时或编译器如何在编译时进行替换,如何通过其名称访问这些个别成员?

我知道很多都是依赖于实现的,但是如果有人可以对任何实现有所启发,或者只是给出一个概述它会非常好.

c struct

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

如何在Matlab中使用循环内的不同矩阵?

我在Matlab中有一个for循环; 在它里面我调用一个使用矩阵作为输入的函数.以下是它的外观:

for S=1:10
...
functionA(optimumS1)
...
end
Run Code Online (Sandbox Code Playgroud)

我加载了OptimalS1,optimalS2 ...矩阵.我怎样才能每次都使用不同的矩阵?

matlab

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

有没有办法在C中采用自下而上的方法?

通常,C语言使用自上而下的方法,而C++使用自下而上的方法.是否有必要遵循这些方法?我可以在C中采用自下而上的方法吗?如果是这样......怎么样?

c

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