小编Sha*_*dow的帖子

如何编译CUDA代码然后将其链接到C++项目?

我正在寻找帮助开始涉及CUDA的项目.我的目标是有一个项目,我可以在本机g ++编译器中编译,但使用CUDA代码.我知道我必须在nvcc编译器中编译我的CUDA代码,但根据我的理解,我可以以某种方式将CUDA代码编译成cubin文件或ptx文件.

这是我的问题:

  1. 如何使用nvcc编译成cubin文件或ptx文件?我不需要-c或其他东西吗?
  2. 我想使用哪种文件类型?
  3. 有哪些g ++命令可以正确地编译和链接项目?

假设如下:

  1. 我有一个名为"main.cpp"的文件,其中包含一个main函数,包含cuda.h.
  2. 我有另一个名为"cudaFunc.cu"的文件,里面有CUDA代码.比方说,我想添加两个存在于main.cpp中的整数数组.

cuda g++ nvcc

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

vector :: begin()和std :: begin()之间的区别

在c ++中迭代一个向量时,我注意到begin()标准库中有一个函数,还有一个begin()作为类的成员函数vector.如果有的话,两者之间的区别是什么,哪一个应该用于另一个?

例:

vector<int> numbers;
//Code to put values in my vector
for (vector<int>::iterator i = numbers.begin(); i < numbers.end(); i++)
    cout << *i << '\n';
Run Code Online (Sandbox Code Playgroud)

VS:

vector<int> numbers;
//Code to put values in my vector
for (vector<int>::iterator i = std::begin(numbers); i < std::end(numbers); i++)
    cout << *i << '\n';
Run Code Online (Sandbox Code Playgroud)

c++ vector

19
推荐指数
2
解决办法
4863
查看次数

使用Math.Floor而不是显式整数转换有什么好处吗?

问题非常简单,是否有任何好处或差异?我注意到在C#中函数返回一个没有任何小数位的double,而在java中它保留了小数位,但除此之外结果是相同的.

这是我在Java和C#中使用的代码,以及输出:

//Java                                        //C#

double a = 5.5;                               double a = 5.5;
System.out.println(Math.floor(a));            Console.WriteLine(Math.Floor(a));
System.out.println((int)a);                   Console.WriteLine((int)a);

//Output                                      //Output

5.0                                           5
5                                             5
Run Code Online (Sandbox Code Playgroud)

c# java math casting floor

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

为什么Java autobox int for Integer for .equals(Object)方法?

我正在研究一些java类,并且重写了.equals(Object)测试我的类的整数变量的方法,当它发出错误说我无法使用原始类型int时,我很惊讶,当我确定它在java文档中说编译器会自动将原始类型自动放映到方法的包装类型中.

public boolean equals(Object o)
{
    if (!(o instanceof myClass))
        return false;
    myClass mc = (myClass)o;
    return (this.myInt.equals(mc.getMyInt()));
}
Run Code Online (Sandbox Code Playgroud)

java autoboxing

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

为什么不能在没有花括号的情况下创建1语句函数?

因此,在大多数编程语言中,如果您使用循环或if,如果其中只有一个语句,则可以在没有花括号的情况下执行此操作,例如:

if (true)
    //Single statement;

for (int i = 0; i < 10; i++)
    //Single Statement

while (true)
    //Single statement
Run Code Online (Sandbox Code Playgroud)

但是,它不适用于函数,例如:

void myFunction()
    //Single Statement
Run Code Online (Sandbox Code Playgroud)

所以,我的问题,为什么它不适用于功能?

c# c++ java

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

有没有办法在函数调用中更改对对象的原始引用

我在 JavaScript 中使用数组,想知道为什么我对数组所做的更改正确保存到 localStorage,但在函数调用之后没有反映在数组中。代码如下:

function removeFromList(array, arrayName, key) {
  array = array.filter(function(element) { return element.key !== key; });
  localStorage.setItem(arrayName, JSON.stringify(array));
}
Run Code Online (Sandbox Code Playgroud)

我做了一些谷歌搜索,通过一些旧帖子,发现数组是按值传递给函数的,也就是说,指向数组对象的数组变量是按值传递的,更改该副本并没有影响指向我的数组对象的原始变量。

我想出了以下代码作为解决方法:

function removeFromList(array, arrayName, key) {
  arrayTemp = array.filter(function(element) { return element.key !== key; });
  for(var i = 0; i < array.length; i++) {
    if (!arrayTemp.some(item => item.key === array[i].key)) {
      array.splice(i, 1);
    }
  }
  localStorage.setItem(arrayName, JSON.stringify(array));
}
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题,数组的新内容同时显示在 localStorage 和原始变量指向的数组对象中。但是,我一直想知道最近是否有一些新方法引入到 JavaScript 中,或者我没有发现可以更好地实现预期结果的旧方法。

javascript

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

我怎么才能使用cin一次?

我希望从一行中获取用户的多个数字,并将其存储在向量中.这就是我这样做的方式:

vector<int> numbers;
int x;
while (cin >> x)
    numbers.push_back(x);
Run Code Online (Sandbox Code Playgroud)

但是,在输入我的号码并按下回车后,就像这样:

1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

它将数字放在向量中,然后等待更多输入,这意味着我必须进入Ctrl+Z退出循环.获取一行整数后如何自动退出循环,这样我就不必输入Ctrl+Z

c++

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

如何使面板中的内容居中?

我有一个面板,我试图将控件居中。但显然,当面板停靠在控件边缘时,面板不喜欢填充。这是我的面板的当前代码:

buttonPanel = new Panel();
buttonPanel.Width = 300;
buttonPanel.Height = 50;
buttonPanel.Dock = DockStyle.Bottom;
buttonPanel.Padding = new Padding((this.ClientSize.Width - buttonPanel.Width) / 2, 0,
                                 (this.ClientSize.Width - buttonPanel.Width) / 2, 0);
buttonPanel.BackColor = Color.Transparent;
this.Controls.Add(buttonPanel);
Run Code Online (Sandbox Code Playgroud)

我在面板内放置了一个按钮。我对上述代码的期望是,该控件很好地放置在面板中心的 300 宽“矩形”的左侧。但按钮放置在最左侧,就好像忽略了填充:

在此输入图像描述

如何将一组按钮置于表单的中心?

c# alignment winforms

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

如果未选中复选框,如何禁用按钮

我得到了以下角度模板:

<tr ng-repeat="user in users">
    <td><input type="checkbox"></td>
    <td>{{user.username}}</td>
    <td>{{user.apiKey}}</td>
    <td>{{user.apiSecret}}</td>
</tr>
...
<button type="button" class="btn btn-danger"><i class="fa fa-trash-o"></i></button>
Run Code Online (Sandbox Code Playgroud)

如果没有选中复选框,如何禁用按钮,但在选中表中的一个或多个复选框时启用它?

以及如何确定检查了哪个表条目并访问用户数据?

javascript model-view-controller jquery input angularjs

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

如何使用 Base 8(八进制)数字?

在 C++ 中,一个八进制数是通过在它前面加上一个0,来定义的,例如:

01 = 1
010 = 8
014 = 12
Run Code Online (Sandbox Code Playgroud)

所以我正在试验如何在 c++ 中使用 Base 8,并尝试使用循环添加它,如下所示:

int base8Number = 00;
for (int i = 01; i < 011; i+=01)
{
    base8Number += i;
    cout << base8Number << '\n';
}
Run Code Online (Sandbox Code Playgroud)

显然,C++ 不喜欢使用八进制数,我得到的输出如下:

1
3
6
10
15
21
28
36
Run Code Online (Sandbox Code Playgroud)

我知道它在 Base 8 中不起作用的最明显的原因是28结果输出,因为该8数字未在 Base 8 中使用。

所以,我的问题是:你可以在 c++ 中使用 Base 8,还是只是打算用作常量,如果你可以在 c++ 中使用 Base 8,你怎么做?

c++ octal

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

通过引用而不是值将对象传递到数组中

我正在研究一些C#代码,并且有8个点,它们被放入6个点数组中,每个数组都有不同的组合,类似于下面的示例:

Point pt10 = new Point(10,10);
Point pt20 = new Point(20,20);
Point pt30 = new Point(30,30);

Point[] ptArr1 = {pt10, pt20};
Point[] ptArr2 = {pt10, pt30};
Run Code Online (Sandbox Code Playgroud)

然后我注意到,在初始化Point数组之后,对数据的更改没有反映在数组中,这告诉我数组包含原始Points的副本,而不是Points本身.这在内存方面是否浪费,如果是这样,有没有办法让数组引用Points,而不是复制值?

c# arrays ref

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

如何只使用一次扫描仪然后摆脱它?

我有一个java程序,我必须得到用户输入,但是,我只需要输入一次用户输入,之后我就不再需要扫描仪了.执行以下操作:

int userInput = new Scanner(System.in).nextInt();
Run Code Online (Sandbox Code Playgroud)

给我一个资源泄漏警告,说<unassigned closeable value> is never closed.

还有另外一种方法我只能使用一次扫描仪,然后摆脱它,所以没有资源泄漏吗?也许类似于C#的using陈述.

java resource-leak java.util.scanner

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