小编Mil*_*lan的帖子

头文件中的C/C++私有数组初始化

我有一个名为Cal的类,它是.cpp和.h对应的

头文件有

class Cal {
    private:
        int wa[2][2];

    public:
        void do_cal();
};
Run Code Online (Sandbox Code Playgroud)

.cpp文件有

#include "Cal.h"
void Cal::do_cal() {
   print(wa) // where print just itterates and prints the elements in wa
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何初始化数组wa?我似乎无法让它工作.

我尝试过:

int wa[2][2] = {
                {5,2},
                {7,9}
               };
Run Code Online (Sandbox Code Playgroud)

在头文件但我得到错误说我不能这样做因为它反对iso..something.

试图wa在构造函数中初始化数组,但也没有工作..我错过了什么?

谢谢

c++ arrays initialization header

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

C/C++优化数据结构,数组数组或只是数组

使用一个使用16字节4v4单字节矩阵的程序:

unsigned char matrix[4][4];
Run Code Online (Sandbox Code Playgroud)

和一些256字节16v16一个字节矩阵:

unsigned char bigMatrix[16][16];
Run Code Online (Sandbox Code Playgroud)

通常由于数据操作,我被迫在程序中按列循环进行缓存未命中.

如果我使用数组,性能会提高,即

unsigned char matrix[16];
unsigned char matrix[256];
Run Code Online (Sandbox Code Playgroud)

并通过使用一些变量来检索元素来访问元素,即

matrix[variableA*variableB + i];
Run Code Online (Sandbox Code Playgroud)

每次我想访问一个元素时,需要重新计算variableA*variableB + i.

我只想要速度优化和内存没问题.这有什么帮助,比如给出一些性能上的打击或损失,还是差异太小甚至不关心?

c c++ arrays

4
推荐指数
2
解决办法
3752
查看次数

C/C++从程序中向stdin添加输入?

这甚至可能吗?

让我们说代码有很多scanf行.在调试时,不是手动运行和手动添加值,而是可以用数据"输入"标准输入,这样当scanf开始读取时,它将读取输入的数据而无需与终端交互.

c c++ stdin input

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

Arraylist在从磁盘加载后无法比较对象

为了简单起见,我可以说我有一个arraylist allBooks包含类"书籍"和一个arraylist someBooks包含一些但不是所有"书籍"的书.

当我想看一个arraylist中的一本书是否也包含在另一个arraylist中时,使用contains()方法工作正常.

问题是,当我将两个Arraylists保存到.bin文件并在程序重新启动后加载它们时,这不再起作用了.执行与以前相同的测试,即使比较的对象相同(内部具有相同的信息),contains()也返回false.

我通过重载equals方法解决了它,它工作正常,但我想知道为什么会发生这种情况?

c# arraylist

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

函数参数的编译器优化

函数参数放置在堆栈上,但编译器可以通过使用可选寄存器来优化此任务。如果只有 1-2 个参数,而不是当有 256 个参数时(不是那个人想要拥有最大数量的参数),则这种优化将启动是有道理的。

如何找出某个编译器(例如 gcc)的参数限制(参数数量),从而确定将使用此优化?

c c++ optimization function cpu-registers

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

C/C++向stdout发送多个字节的最佳方法

分析我的程序和功能打印需要花费大量时间来执行.如何将"原始"字节输出直接发送到stdout而不是使用fwrite,并使其更快(需要同时将print()中的所有9字节发送到stdout)?

void print(){
    unsigned char temp[9];

    temp[0] = matrix[0][0];
    temp[1] = matrix[0][1];
    temp[2] = matrix[0][2];
    temp[3] = matrix[1][0];
    temp[4] = matrix[1][1];
    temp[5] = matrix[1][2];
    temp[6] = matrix[2][0];
    temp[7] = matrix[2][1];
    temp[8] = matrix[2][2];

    fwrite(temp,1,9,stdout);
Run Code Online (Sandbox Code Playgroud)

}

矩阵全局定义为无符号字符矩阵[3] [3];

c c++ optimization stdout fwrite

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

C/C++是一个不是数字的int值?

这会发生吗?3断言,其中一个应该激活.

int nr = perform_calc();
assert( nr == 0);
assert( nr > 0);
assert( nr < 0);
Run Code Online (Sandbox Code Playgroud)

如果程序没有在g ++ 3.4.4上激活断言,是否会出现这种情况.

并且我没有可能更改代码以便在断言未激活的情况下打印数字.

有任何想法吗?

编辑:在阅读了几条评论后,我被迫编辑.显示代码?你为什么要做这个蠢事?我不相信!在哪里使用?从我的问题来看,显然我不会发布/更改代码,原因有以下几种:

  • 我是一个初学者并且对代码感到羞耻(那里没有犯罪,如果我发布它,肯定会更容易回答问题)
  • 我被要求只用很少的信息帮助一个朋友(不,我没有问他为什么你不能检查返回的数字,或者为什么他不能只添加一个断点).
  • 我在没有任何编译器的emacs中编写我的代码,并将其发送到编译它的远程服务器,运行它并且只有在出现问题时才能返回失败的断言.

如果你认为我是恶作剧或恶作剧你应该投票支持关闭线程.我会完全没问题.但是添加这样的不必要的评论只会让我想要一个"态度"的标志来实现.

我要感谢其他人的意见和答案,他们实际上试图解释并回答我的问题.

c c++ int assert numbers

2
推荐指数
4
解决办法
470
查看次数

在C++中命名函数,方法,指针,变量,数组等

好吧,与几个朋友做一些项目,我需要一些标准来用c ++命名.有没有人有任何良好的c ++命名方案,经过深思熟虑,而不是像10分钟那样.

例如,int*house应该命名为int*house_p,这样当有人读取代码时,他不需要一直滚动,想知道一个东西是指针,数组,矩阵还是其他什么......

发布您正在使用的经过深思熟虑的命名方案!

c++ naming

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

Java BigInteger,切断了最后一位数字

相当容易,如果BigInteger数字是543,我希望它切断最后一位数,使其为54.

两种简单的方法可以是:

  1. 使用字符串,获取子字符串并使用新值创建新的biginteger.
  2. 使用数字10的BigIntegers除法.(543/10 = 54.3 => 54)

事情是,我将这个表演了很多具有当然的大整数的时候.

我的猜测是,用字符串来玩会慢一些,但是我又没有那么多地使用Bigintegers,也不知道"除法"操作有多昂贵.

速度在这里是必不可少的,实现这个的最快方法是什么(内存只是速度没问题)?

其他解决方案也欢迎.

java optimization performance biginteger

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

java.nio.channels中.*

nio频道有什么用?它被添加到java时有一些很好的会谈,但我仍然没有看到人们在他们的应用程序中使用它.

它有什么问题,或者我只是没有遇到使用它的人?

关于为什么我应该打扰使用它的任何好例子?

谢谢

java

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