小编Mis*_*ère的帖子

是否可以使用线程来加速文件读取?

我想尽快读取文件(40k行)[编辑:其余的已经过时].

编辑:Andres Jaan Tack建议基于每个文件一个线程的解决方案,我想确定我得到了这个(因此这是最快的方式):

  • 每个条目文件一个线程将其整个读取并将其内容存储在相关的容器中( - >与条目文件一样多的容器)
  • 一个线程计算输入线程读取的每个单元格的线性组合,并将结果存储在退出容器中(与输出文件关联).
  • 一个线程按块(每4kB数据,大约10行)写入输出容器的内容.

我是否应该推断出我不能使用m-mapped文件(因为程序处于待机状态等待数据)?

先谢谢了.

此致

mystère先生.

c++ filesystems multithreading operating-system file

17
推荐指数
2
解决办法
7300
查看次数

如何从cout回滚线?

我正在编写一个任务监控,它使用cout更新任务的进度.我想在每行显示一个任务进度,因此我必须回滚几行控制台.

我坚持"几个"因为\b一行的工作,但不删除\n行之间.

我试过std::cout.seekp(std::cout.tellp() - str.length());tellp()返回-1(失败).

c++ cout

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

如何在不指定std :: map的值的情况下添加有效密钥?

我有一个std :: map,我想添加一个有效的键以便稍后迭代它,但是没有给出任何值(它将在稍后的迭代过程中给出).

这就是我现在这样做的方式:

std::vector<std::string> valid_keys;
//Fill... Then :
std::map<std::string, float> map;
for(size_t i = 0 ; i < valid_keys.size() ; ++i) {
    /*I don't want to do that because in fact I don't use a float type*/ 
    map[valid_keys[i]] = 0.f; //<- 
}
//Using :
for(std::map<std::string, float>::iterator it = map.begin() ; it != map.end() ; ++it) {
    it->second = 0; //Dummy
}
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

先谢谢了.

c++ map

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

实现boost :: thread包装器接口时"调用纯虚方法"

我有一个小包装器,它集中了与线程相关的内容:

class Thread {
protected:
    boost::thread *m_thread;

    virtual void work() = 0;

    void do_work() {
        work();
    }

public:
    Thread() : m_thread(NULL) {}
    virtual ~Thread() {
        catch_up();
        delete m_thread;
    }

    inline void catch_up() {
        if(m_thread != NULL) {
            m_thread->join();
        }
    }

    void run() {
        m_thread = new boost::thread(boost::bind(&Thread::do_work, boost::ref(*this)));
    }
};
Run Code Online (Sandbox Code Playgroud)

当我实现它时,请说明如下:

class A : public Thread {
    void work() {}
};
Run Code Online (Sandbox Code Playgroud)

在 :

A a; a.run();
Run Code Online (Sandbox Code Playgroud)

我得到了一个运行时终止,显示了一个非常"纯粹的虚拟方法".我认为这是boost :: bind参数,但我不知道怎么说"使用虚拟纯实现"...

先谢谢了.

问候,

Mystère先生

c++ multithreading boost pure-virtual

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

cv :: VideoCapture适用于网络摄像头,但不适用于IP摄像头?

它必须发生,我被困在我的项目的最后阶段,当我想在IP摄像机上使用我的代码时,它就像我的网络摄像头上的魅力一样.该URL在我的浏览器中完美运行,但OpenCV没有任何结果...这是我的代码:

#include <opencv/highgui.h>

using namespace cv;

int main(int argc, char *argv[])
{
    Mat frame;
    namedWindow("video", 1);
    VideoCapture cap("http://192.168.1.99:99/videostream.cgi?resolution=32&rate=0&user=admin&pwd=password&.mjpg");
    while ( cap.isOpened() )
    {
        cap >> frame;
        if(frame.empty()) break;

        imshow("video", frame);
        if(waitKey(30) >= 0) break;
    }

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

和编译器设置:

//Added to the .pro file of QtCreator
INCLUDEPATH += C:\\OpenCV243\\release\\include
LIBS += -LC:\\OpenCV243\\release\\lib \
    -lopencv_core243.dll \
    -lopencv_highgui243.dll
Run Code Online (Sandbox Code Playgroud)

我已经测试过使用相同的代码打开一个.avi文件并且它可以工作......但是公共IP摄像机URL就像http://66.184.211.231/mjpg/video.mjpg没有!那怎么回事?

通过编辑删除:我认为FFMPEG是一个问题,但是v2.4.3.有内置的FFMPEG支持和.avi文件工作,虽然我没有安装任何FFMPEG库(注意解释?)

提前致谢,

此致,Mystère先生

opencv

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

链接器如何正常工作(微控制器上下文)?

我已经在C和C++,现在相当长的时间编程,所以我熟悉的链接过程的用户:预处理器扩展中的每个.c文件所有原型和宏,然后分别编译成自己的对象文件和所有目标文件以及静态库都链接到可执行文件中.

但是我想更多地了解这个过程:链接器如何链接目标文件(它们包含什么?)?将声明但未定义的函数与其他文件中的定义匹配(如何?)?转换为程序存储器的确切内容(上下文:微控制器)?

应用实例

理想情况下,我正在寻找基于以下简单示例的流程正在进行的详细逐步描述.因为它似乎没有在任何地方说出来,以这种方式回答谁的名声和荣耀.

main.c中

#include "otherfile.h"

int main(void) {
   otherfile_print("Foo");

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

otherfile.h

void otherfile_print(char const *);
Run Code Online (Sandbox Code Playgroud)

otherfile.c

#include "otherfile.h"
#include <stdio.h>

void otherfile_print(char const *str) {
   printf(str);
}
Run Code Online (Sandbox Code Playgroud)

c compiler-construction embedded microcontroller linker

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

在中断期间,Arduino的时钟(毫秒)是否在后台继续计数?

我有一个很快的问题,显然我没有在网上说过我读过的内容:我知道Arduino上的millis()在自定义中断期间不会改变,但相关的计时器是否仍然在后台计算

我的程序是时间敏感的,我想知道每次处理一个中断时是否应该增加它的值(如何?),这样主程序的时钟就不会漂移.

在此先感谢,问候,Mystère先生

arduino interrupt

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