小编Ami*_*mar的帖子

为什么指针更快更有效

我在C书中看到了这个:

指针有多种用途,包括:•创建快速有效的代码•提供解决许多类型问题的便捷方法•支持动态内存分配•使表达式紧凑和简洁•提供通过指针传递数据结构的能力,而不会产生大量开销•保护作为参数传递给函数的数据.可以编写更快,更高效的代码,因为指针更接近硬件.也就是说,编译器可以更容易地将操作转换为机器代码. 没有与其他运算符可能存在的指针相关的开销.

问:"编译器将操作轻松转换为机器代码"与更快地处理代码有什么关系?编译器可能更容易转换,但它如何影响创建的可执行文件的速度?

问:因为,最后一切都被转换成机器指令,如果我宁愿传递正常变量,如何使用指针给出一些特殊的加速?

有人可以提供一些有关使用指针如何使程序更快的见解?

PS我明白,不是传递一个巨大的"对象",传递一个指针在复制资源方面会更好,还有什么更多因为指针是首选吗?

c c++ performance pointers

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

是否可以进行相互递归的类?

我读了如何使用前向声明来使其工作.

class A
{
    public:
    B *objB;

    void foo(){}
}

class B
{
    public:
    A *objA;

    void foo(){}
}
Run Code Online (Sandbox Code Playgroud)

只想确认这种设计是否可行?

class A
{
    public:
    B objB;

    void foo(){}
}

class B
{
    public:
    A objA;

    void foo(){}
}
Run Code Online (Sandbox Code Playgroud)

PS:如果有人也可以解释为什么/为什么不能在逻辑上按类来解释,而不仅仅是语言方面,比如引用一些例子.这究竟是什么意味着课程?

c++ recursion class declaration definition

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

结构/对象内的存储顺序

考虑这两种情况:

struct customType
{
   dataType1 var1; 
   dataType2 var2;
   dataType3 var3;
} ;

customType instance1;
// Assume var1, var2 and var3 were initialized to some valid values.

customType * instance2 = &instance1;    
dataType1 firstMemberInsideStruct = (dataType1)(*instance2);
Run Code Online (Sandbox Code Playgroud)
class CustomType
{
   public:
       dataType1 member1;
       dataType2 member2;

       retrunType1 memberFunction1();

   private:
       dataType3 member3;
       dataType4 member4;

       retrunType2 memberFunction2();
};

customType object;
// Assume member1, member2, member3 and member4 were initialized to some valid values.

customType *pointerToAnObject = &object ;
dataType1 firstMemberInTheObject = (dataType1) (*pointerToAnObject);
Run Code Online (Sandbox Code Playgroud)

是否总是 …

c c++ pointers structure class

5
推荐指数
2
解决办法
1881
查看次数

在Javascript中打印所有ASCII字符

我需要做这样的事情:

  1. 有一些类型的变量.
  2. 循环运行并将所有可能的ASCII字符分配给此变量并逐个打印它们.

UNICODE也有类似的可能吗?

javascript unicode ascii

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

fscanf 是否将传递的文件指针向前移动?

我在某处看到过这段代码:

#include<stdio.h>

int main()
{
    FILE * fp;
    char s[1024];
    fp = fopen("file","r");

    while( fscanf(fp, "%s", s ) != EOF )
    {
        puts(s);
    }

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我预计这将继续无限循环地打印文件的第一个单词。我相信文件指针被视为输入只是为了获取应该读取输入的点,而 fscanf 将有一个本地文件指针,它将用来读取文件。

但在运行时我意识到它实际上打印了整个文件。我能得出的唯一结论是,在读取第一个输入后,它实际上将传递的文件指针向前移动,否则它只会一次又一次地继续打印第一个单词。

我看到了fscanf 的man 文档,但在阅读后找不到有关文件指针移动的任何内容。

有人可以解释一下或给出一个来源,其中指定传递的文件指针在读取后实际上会移动吗?

c file-io scanf file-pointer

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

用Dart进行可视化?

我的工作涉及大量的可视化。我一直在使用D3.jsJavaScript Infovis工具包

最近,我了解了Dart如何成为开发Web应用程序的新方法。

Q1。Dart是否提供任何进行可视化的库(D3.jsJavaScript Infovis工具箱级别的东西)?

Q2。如果我继续使用Dart,是否可以将D3.js / Javascript Infovis工具包与Dart一起使用?


编辑:

我在互联网上发现可以与Dart一起使用Javascript

我通过了Dart FAQ,但是找不到与可视化库或D3.js本身有关的任何内容。

javascript visualization d3.js dart

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

处理(排队)对呼叫速率受限的外部API的Web服务的请求

我使用Flask框架公开了一个Web服务.

此服务用作外部API,它对每秒应调用的次数有限制.

在正常情况下,对我的API的多次调用会导致生成多个线程,并且在不对每秒请求数进行任何控制的情况下调用外部API.

有没有一种方法可以将请求排队到我的Web服务,然后以限制方式调用外部API.

任何其他想法也受到欢迎.


编辑:

  1. 我已经知道外部API的速率(每秒1个请求)

  2. 如果请求我的API的客户端在获得结果之前必须等待一段时间(几秒钟/几分钟,具体取决于我的负载),我没关系.

  3. 我不希望我的API客户端获得失败的结果.即我不希望他们一次又一次地打电话.如果我已经以尽可能最大的速率访问外部API,那么当速率降低时,对我的API的请求应该排队并处理.

  4. 我读到了CeleryRedis.我是否可以将Web服务调用排入这些队列并稍后处理它们?

python webserver web-services rate-limiting flask

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

放置完整性约束会降低性能吗?

在与朋友的讨论中,我听到了两件事 -

  1. 使用约束会导致性能略有下降.例如.考虑唯一性约束.在插入之前,DBMS必须检查所有现有数据的唯一性,从而导致额外的计算.

  2. 他建议确保在应用程序级逻辑本身处理这些约束.例如.正确地从两个表中删除行,而不是放置外部完整性约束等.

第一个对我来说听起来有点合乎逻辑,但第二个看起来很直观.我没有足够的DBMS经验来真正判断这些说法.

问:索赔1是否正确?如果是这样,即使是处理此类情况的正确方法,索赔2也是如此?

database database-design referential-integrity database-performance

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

将原始数据类型转换为void指针类型

我正在读这里的 pthreads .在一个例子中,他们给出了这个源代码.

在创建线程时,它们传递一个long类型,类型为void*类型到函数!

在函数内部,它们接收此值并反向转换以获得长值.

Q1:是否允许将指针类型转换为原始数据类型和副verca(在C和C++中)?

Q2.如果是这样,这样做是好事吗?他们不应该创建一个指向这个long类型的指针,然后将此指针类型转换为void*并将其传递给该函数.

这种将原始类型转换为指针类型的想法我发现很混乱?可以理解,从任何指针类型转换为void*,但原始数据类型如何存储在void*类型中?是否有可能在特定系统上,基本类型的大小可能会大于为指针类型分配的大小?

c c++ pointers pthreads

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

从 obj 文件的 UV 值(浮点数)查找图像像素坐标(整数)

我正在解析一个包含纹理坐标(vt)值的 obj 文件。据我了解,vt 值是与该 obj 对应的纹理图像的映射。

假设我的图像 im = 400x300 像素

我有一个 vt 值

VT .33345 .8998

映射表示,在图像中,转到坐标:

imageWidth x .3345 、 imageHeight x .8998 并使用那里的值。

我已将图像值加载到二维数组中。

问题是,这些映射坐标是浮点值,我该如何将它们映射到像素坐标的整数值?我总是可以截断小数部分、四舍五入等。但是标准是否定义了要执行哪一个选项?

graphics texture-mapping

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