小编use*_*986的帖子

C++ Visual Studio:使用pragma注释进行链接

我遇到了一段使用#pragma comment(lib,"libraryname")的代码.

为什么这种用法与仅从属性菜单链接库相反?在什么情况下需要这种用法?我在使用C++ Visual Studio 2010的 Windows中.

很高兴看到一个需要这种用法的例子.

c++ dynamic-linking visual-studio-2010 static-linking

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

用于c ++的64位名称修改

我有一些代码,其中包含以下行

  #pragma comment(linker, "/include:_test@12") 
Run Code Online (Sandbox Code Playgroud)

当我使用配置类型为32位的C++ Visual Studio 2010编译代码时,使用此代码的项目工作正常(我也在32位Windows机器上).

当我将机器更改为64位并使用使用C++ Visual Studio 2010编译的x64配置时,我收到链接错误.

对于32位和64位,C++名称是否有所不同?如果是这样,我在哪里可以找到64位C++名称修改约定?

c++ 64-bit name-mangling visual-studio-2010

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

c ++在编译时加载大量数据

我有一个C++对象,需要大量的数据来实例化.例如:

  class object {
      public object() { 
          double a[] = { array with 1 million double element }; 
      /* rest of code here*/};
      private:
      /* code here*/    
  }
Run Code Online (Sandbox Code Playgroud)

现在数据(即100万个双数字)位于单独的文本文件中.问题:如何以高效的方式将它放在"double a []"之后并最终编译代码?我不想在运行时从文件中读取数据.我希望它与对象一起编译.什么可以解决方案?理想情况下,我希望数据位于单独的文本文件中,因为它目前驻留在某种程度上也有一个像double a [] = .....的赋值.

这可能吗?提前致谢!

c++ visual-studio-2010

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

在cuda中定义模板化常量变量

如何在中实现模板化常量变量cuda。我有一个struct

template<typename T> mystruct{ T d1; T d2[10];}
Run Code Online (Sandbox Code Playgroud)

我想要上面有一个常量变量,struct并使用类似下面的代码(此时代码可能不正确)

template<typename T> __constant__ mystruct<T> const_data;
Run Code Online (Sandbox Code Playgroud)

在主要之后,我想复制一些

  mystruct<float> data; 
Run Code Online (Sandbox Code Playgroud)

const_data 最终设备代码中访问它。如果有人指出如何实现这一目标,将是一种好感。提前致谢。

c++ templates cuda visual-studio-2010

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

C++循环通过结构向量

说我有

 struct S {
    double A;
    double B;
    double C;
  };
Run Code Online (Sandbox Code Playgroud)

   std::vector<S> vecS(10);
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个通用函数void F(std::vector<S> vecS,structure S.x),以便可以进行以下计算

 F(std::vector<S> vecS, structure S.x) {
        for(i=1;i<10;i++)
          vecS[0].x += vecS[i].x;  
       // note the structure does not have memeber "x"
       // I want to give that as a generic input to access A,B or C
  }
Run Code Online (Sandbox Code Playgroud)

上面的代码不是正确的代码,但我只是想说明我想要计算的内容.

我想要计算的是循环特定元素的结构向量.这可能是一个简单的好方法吗?有人可以给我一些指示如何以通用方式访问结构的成员(也许这就是我需要编写这个函数).

提前致谢.

c++ pointer-to-member

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

循环通过结构作为关键的地图.

我有一个结构

struct key
{
  int x;
  int y;
  int z;
 };
Run Code Online (Sandbox Code Playgroud)

比如x,y,z可以取1到10之间的值.

我也有一张地图

std::map<key,double> myMap;
Run Code Online (Sandbox Code Playgroud)

我用不同的键值填充.

有没有办法循环遍历所有键值,例如z = 5.那是(就伪代码而言)

 loop over myMap
   double v += myMap.find({x=anything,y=anything,z=5})->second;
Run Code Online (Sandbox Code Playgroud)

如果有人可以提供一些关于这是否可以实现的评论(我不想使用增强容器),那将是非常友好的.

c++ struct stdmap

3
推荐指数
2
解决办法
122
查看次数

CUDA代码的C++设计

我有一段C++ CUDA代码,我必须在float中声明数据变量.我还必须重写声明数据变量为double的代码.

在CUDA中处理这种情况的好设计是什么?

我不希望有两组相同的代码,因为在将来任何更改我将不得不更改两组相同的代码.我还希望保持代码清洁,而不需要在代码中的#ifdeffloat和double之间进行更改.

任何人都可以建议任何好的(在维护和"易于阅读")设计?

c++ cuda visual-studio-2010

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

void指向boost共享指针向量的指针

我有一个无效指针

void *vp;
Run Code Online (Sandbox Code Playgroud)

我想将它指向vec_A一个vec_A作为参考传递的函数内部,即

some_function(std::vector<boost::shared_ptr<A> >& vec_A)
{
   void *vp;
   //now i want vp to point to vec_A
}
Run Code Online (Sandbox Code Playgroud)

我点后vpvec_A,怎么找回来的

 std::vector<boost::shared_ptr<A> > 
Run Code Online (Sandbox Code Playgroud)

c++ visual-studio

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

CUDA 中的推力::device_vector

我是 CUDA 的新手,正在尝试学习用法。有人可以帮忙吗?我在主函数中有以下内容(我在 Visual Studio 中,我的源文件和头文件分别是 .cu 和 .cuh)

 thrust::device_vector<float> d_vec(100);
 kernel<<<100,1>>>(d_vec);
Run Code Online (Sandbox Code Playgroud)

然后在内核中我有

    template <typename T> __global__ kernel(thrust::device_vector<T> d_vec)
    {  int tid = threadIdx.x + blockIdx.x*blockDim.x;
       T xxx = 3.0;
       d_vec[tid] = xxx;
     }
Run Code Online (Sandbox Code Playgroud)

我的目标是用 float 调用内核一次,用 double 调用一次。还要注意,在这个简单的例子中,我有变量 xxx(在我的实际情况下是一些产生双精度或浮点数的计算)。

和我得到两个误差:1>调用__host__从函数(操作符=)__global__函数是不允许2>调用一个__host__从函数(操作符[])__global__函数是不允许

所以我猜“d_vec[tid] = ..”中的“[]”和“=”是问题所在。但我的问题是如何访问内核中的设备向量。有人可以澄清什么是正确的程序以及我做错了什么。提前致谢

c++ cuda visual-studio-2010

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

基类成员函数内的静态变量

我有以下内容:

   class base
   {
      public
       void f();
       ...
   }
    void base::f()
    {
        static bool indicator=false;
         .....
         if(!indicator)
         {
            ...
            indicator=true;
          }
     }
    class D:public base
    {      
       ...
     }
Run Code Online (Sandbox Code Playgroud)

在我的主()我有:

      main()
      {
          // first instance of D
          base *d1 = new D();
          d1->f();
           ....
           // 2nd instance of D
          base *d2 = new D();
          d2->f();
       }
Run Code Online (Sandbox Code Playgroud)

我发现第一次实例化D并调用d1-> f()时,静态变量设置为false.但第二次我调用d2-> f()代码甚至没有点击"静态bool指示器=假"; 它保持为真(从d1-f()的第一遍开始)这正是我想要的行为,但我不明白为什么会这样.有人可以解释一下发生了什么.提前致谢

c++ inheritance static

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

用于选择"n"行的Excel公式

我在单元格A1中有数据:A100.比如在单元格B1中我有一个值10(这10可能会更改为小于100的任何其他数字).我试图选择A1到单元格B1中所述的行数.因此,当单元格B1的值为10时,我想选择A1:A10.如果单元格B1有50,我想选择A1:A50.

我想在excel(而不是VBA)中执行此操作.我选择的数据将传递给其他一些excel函数.有办法吗?

excel excel-formula

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

Python类成员访问

我是python的新手,正在尝试学习它。有人可以帮我一个简单的问题吗?我正在创建一个对象,如下所示:

 def myList(list):

    def __repr__(self):
    return list.__repr__(self)
Run Code Online (Sandbox Code Playgroud)

所以基本上只是一个列表。但是然后在输入列表之后,我想立即将其值加倍。即

当我使用

 t = myList([1, 2, 3])
 print(t)
Run Code Online (Sandbox Code Playgroud)

它应该输出 [2, 4 ,6]

现在我知道如何将列表中的每个元素加倍,例如可以使用

 l = [x * 2 for x in l]
Run Code Online (Sandbox Code Playgroud)

但是我不确定如何在创建后立即访问myList对象的成员并将它们加倍。

python list operator-overloading subclass

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