小编use*_*973的帖子

如何最正确地使用libusb与连接的USB设备通信?

如何最正确地使用libusb与连接的USB设备通信?

具体来说,如何将数据传输到USB设备,从设备接收信息,找出所连接设备的名称,是否有存储等.

更具体地说,我将在Mac OS X机器上运行它,所以我知道我不能只使用Windows头文件.

如果对libusb和USB设备有一个很好的解释,这也会有所帮助.

c++ libusb

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

变量模板参数中的Decltype

我正在使用unique_ptrs 等处理一些代码.这条线是:

std::unique_ptr<char[], void(*)(void*)> result(..., std::free);
Run Code Online (Sandbox Code Playgroud)

哪个有效.我意识到std :: free给出的类型是第二个模板参数.我试过用:

std::unique_ptr<char[], decltype(std::free)> result(..., std::free);
Run Code Online (Sandbox Code Playgroud)

这将更容易阅读,更容易出错.但是我得到了<memory>与"使用函数类型实例化数据成员" 相关的错误.

有没有办法做到这一点?

c++ c++11

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

将堆栈复制到数组

这是我的算法的一个版本:

public void copyStackToArray(Stack<Integer> stack) {
    int i = 0;
    while (!this.bestRouteStack.empty()) {
        this.array[i++] = stack.pop();
    }
}
Run Code Online (Sandbox Code Playgroud)

(对于我的代码,数组上的边界保证可以正常)

我想知道是否有一个库算法可以做到这一点,但搜索没有任何结果.

java

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

有什么理由不使用auto和C++基于范围的for循环?

例如,循环:

std::vector<int> vec;
...
for (auto& c : vec) { ... }
Run Code Online (Sandbox Code Playgroud)

将迭代vec并通过引用复制每个元素.

有没有理由这样做?

for (int& c : vec) { ... }
Run Code Online (Sandbox Code Playgroud)

c++

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

在屏幕上绘制点

我有这个代码:

#include <iostream>
#include <vector>

using std::vector;

#ifdef __APPLE__
#include <GLUT/GLUT.h>
#else
#include <GL/GLUT.h>
#endif

#define heightWindow 500
#define widthWindow 500

struct point {
    double x;
    double y;
};

vector<struct point> arr(heightWindow);

void renderScene();

int main(int argc, char **argv)
{
    int k = 0;
    for (struct point& i : arr) {
        i.x = k;
        i.y = k;
        k++;
    }
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(widthWindow, heightWindow);
    glutCreateWindow("2D NBody Problem");
    glutDisplayFunc(renderScene);
    glPointSize(3.0);
    glutMainLoop();
    return 1;
}

void …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glut

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

在C++中打印引号不是整个std :: string给出负的ASCII值?

从文件中读取时遇到问题.以下是一些示例代码:

std::for_each(vec.begin(), vec.end(), [&](std::string str1) {

    //... split the string up by spaces into vector "split"

    for (auto& str : split) {
        std::cout << str << "\n";
        std::cout << str[0] << "\n";
    }
});
Run Code Online (Sandbox Code Playgroud)

所以基本上我在一行上打印出拆分的每个元素,然后打印第一个字符.我得到的是这个:

“test test test
?
Run Code Online (Sandbox Code Playgroud)

第一行是整行str,第二行应该是第一行.但是,它会打印一个?.即使使用a std::string也会得到相同的结果:

for (auto& str : split) {
        std::cout << str << "\n";
        std::cout << std::string(1, str[0]) << "\n";
}
Run Code Online (Sandbox Code Playgroud)

我正在使用clang++ -std=c++11我的设置.有没有人见过这个?

c++ c++11

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

擦除不是在std :: for_each中调用,而是在基于范围的for循环中执行?

运行代码:

for (auto& v : vec)
    v.erase(0, v.find("\n") + 1);
Run Code Online (Sandbox Code Playgroud)

做了什么:擦除所有内容直到第一个"\n"中的每个元素vec.

但是,运行代码:

std::for_each(vec.begin(), vec.end(), [&](std::string v) {
    v.erase(0, v.find("\n") + 1);
});
Run Code Online (Sandbox Code Playgroud)

不删除任何元素vec.使lambda按值传递而不是-reference不会改变结果.

c++ c++11

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

标签 统计

c++ ×6

c++11 ×3

glut ×1

java ×1

libusb ×1

opengl ×1