小编Nik*_* C.的帖子

如何擦除硬盘驱动器

这是一个奇怪的问题,但在这里.我想写一个程序来闪存我的外部硬盘1s然后0s完全清理它所以我可以卖它.现在,为什么我要编写自己的软件而不是仅仅使用DBAN?

  1. 据我所知,DBAN删除了它检测到的所有硬盘.我只想清理我的外部.

  2. DBAN闪烁七次.我认为这对我的目的来说有点过分,因为我的外部不包含非法材料或信用卡信息.

  3. 说实话,我实际上对固件如何工作很好奇.

谷歌没有出现太多(愚蠢的Adobe Flash).我更喜欢在C/C++中这样做,但其他语言也适用,包括汇编.

c linux erase hard-drive

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

用于访问向量的通用迭代器

我想知道我是否可以使用通用迭代器来访问向量中的元素.我有不同的向量,但只有一个功能来显示元素.如果我可以有一个通用的迭代器,那么我的方法可以顺利运行.如果有可能请提供建议.

Point2,Point3,Line2,Line3是4个不同的类.该方法接受我在另一个方法中创建的向量对象.

template <typename VecObject>
void Display(VecObject v) {

    if (filterCriteria == "Point2") {
        vector<Point2>::iterator it;
    } else if (filterCriteria == "Point3") {

    } else if (filterCriteria == "Line2") {

    } else if (filterCriteria == "Line3") {

    }

    for ( it = v.begin(); it!=v.end(); ++it) {
        cout << *it << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我以前做的更早,它的工作找到.我现在需要使用迭代器来实现

//for (int i = 0; i < v.size(); i++) {
// cout << v[i];
// }
Run Code Online (Sandbox Code Playgroud)

c++ iterator stdvector

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

在支持多种类型的宏中使用 printf

我有一个这样的宏:

#define assert_cmp(a, cmp, b) \
    if(!((a) cmp (b))) { \
        std::cerr << "Assertion failed: " << a << " " << #cmp << " " << b << std::endl; \
        assert((a) cmp (b)); \
    }
Run Code Online (Sandbox Code Playgroud)

(是的,我也许应该解决do { ... } while(0)这个问题......)

然后我可以使用它,例如:

void f(int a) {
    assert_cmp(a, <=, 42);
    // ...
}
Run Code Online (Sandbox Code Playgroud)

效果很好。然而现在,我想对一些 CUDA 代码也使用相同的宏,但我只能printf在那里使用。(CUDA 与这个问题并不真正相关,只是我必须使用printf。)

如何翻译宏来printf代替std::cerr?这并不那么简单,因为参数ab可以是任何类型(尽管如果我们现在只关心数字类型也可以)。

也许是这样的:

#define assert_cmp(a, cmp, b) \
    if(!((a) cmp (b))) …
Run Code Online (Sandbox Code Playgroud)

c++

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

类的双指针

我记得看到这行代码在我的期末考试,还是到今天我不出来或者一个使用它.我累了谷歌搜索"双指针"和"指针类的数组",但仍无法找到答案.

我想知道你为什么会用这样的事情(实际使用)或直接我一个网站,解释这对我来说.谢谢.

vendingMachine **va = new vendingMachine*[numMachines];
Run Code Online (Sandbox Code Playgroud)

c++ pointers

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

如何使用QCloseEvent退出程序?

我已经在登录对话框的.h文件中覆盖了closeEvent函数,以便它在发出时退出程序:

    void closeEvent(QCloseEvent *event){exit(0)}
Run Code Online (Sandbox Code Playgroud)

但是,它似乎退出程序中我点击的对话框中的任何按钮.如何在单击右上角的"x"按钮时退出?

c++ qt

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

比较QWidgets

如何比较QWidgets?可以说我有一个列表,想更改仅QPushButton以下部件的大小:

例如,是否有任何功能或方法可以做到这一点?

QList<QLayoutItem *> itemList;

if(itemList->Items->type() == QPushButton)
{
  item.setGeometry(newRect);
}
Run Code Online (Sandbox Code Playgroud)

c++ qt

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

返回通过引用传递的参数是否安全?

我通常使用C++,其中返回作为引用传递的函数参数可能导致问题(如悬挂引用或者可能是UB.)类似的东西在C#中是否成立?

例证:

byte[] do_something(byte[] arg)
{
    byte[] ret = null;

    // ...
    // Some of the code paths can lead to:
    ret = arg;

    // ...

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

现在上面方法的调用者做了:

byte[] array = // ...
array = do_something(array);
Run Code Online (Sandbox Code Playgroud)

这在C#中是否总是安全的,或者是否存在导致故障的情况?

c# return reference pass-by-reference

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

在List Widget Qt C++中显示数组内容

我想用Qt和C++在List Widget(基于项目)中显示我的数组的一些内容,我尝试了这个,但它起作用了:

QString exemple[2] = 'blablabla'
ui->listWidgetResult->addItem(exemple[2].toStdString().c_str());
Run Code Online (Sandbox Code Playgroud)

谢谢 !

c++ arrays qstring qt

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

试图理解一个c ++列表

请原谅我的无聊,但我无法理解以下内容:

class Graph
{
    int V;    // No. of vertices
    list<int> *adj;    // A dynamic array of adjacency lists
    void bridgeUtil(int v, bool visited[], int disc[], int low[], int parent[]);

  public:
    Graph(int V);   // Constructor
    void addEdge(int v, int w);   // function to add an edge to graph
    void bridge();    // prints all bridges
};

  Graph::Graph(int V)
  {
      this->V = V;
      adj = new list<int>[V];
  }

  void Graph::addEdge(int v, int w)
  {
     adj[v].push_back(w);
     adj[w].push_back(v);  // Note: the graph is undirected …
Run Code Online (Sandbox Code Playgroud)

c++ list

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

如何在临时容器类中实现复制构造函数和赋值运算符?

我不知道如何在副本构造函数或赋值构造函数中将int转换为double。可能吗?怎么做?

template <typename T>
class Container {
public:
    Container() { //... }
    Container(const Container& y) { //... }
    Container& operator=(const Container& y) { //... }
    ~Container() { //... }
private:
    // ...
};

int main() {
    Container<int> ci;
    Container<double> cd;
    ci = cd;
}
Run Code Online (Sandbox Code Playgroud)
no match for 'operator=' (operand types are 'Container<double>' and 'Container<int>')

candidate: Container<T>& Container<T>::operator=(const Container<T>&) [with T = double]
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c++ ×8

qt ×3

arrays ×1

c ×1

c# ×1

erase ×1

hard-drive ×1

iterator ×1

linux ×1

list ×1

pass-by-reference ×1

pointers ×1

qstring ×1

reference ×1

return ×1

stdvector ×1