小编Ami*_*yan的帖子

将数组转换为向量的最简单方法是什么?

将数组转换为向量的最简单方法是什么?

void test(vector<int> _array)
{
  ...
}

int x[3]={1, 2, 3};
test(x); // Syntax error.
Run Code Online (Sandbox Code Playgroud)

我想以最简单的方式将x从int数组转换为vector.

c++ arrays vector

82
推荐指数
5
解决办法
14万
查看次数

strdup还是_strdup?

当我strdup在Microsoft Visual C++中使用时,它警告我:

警告C4996:'strdup':不推荐使用此项目的POSIX名称.而是使用符合ISO C++的名称:_strdup.详细信息请参见在线帮助.

这似乎_strdup是正确的.

但是当我_strdup在GCC(Fedora Linux OS)中使用时,编译器显示错误:

错误:未在此范围内声明'_strdup'

使用GCC和Linux,编译器不会显示任何错误strdup.

哪个是正确的 - strdup或者_strdup

注意:我包含<string.h>在我的代码中.

c c++ strdup visual-studio

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

如何在ANSI C中生成NaN,-Infinity和+ Infinity?

我使用ANSI C89(不是C++),我想生成NaN,-Infinity和+ Infinity.

有没有标准方式(例如标准宏)?或者是否有任何平台和编译器独立的方式来生成这些数字?

float f = 0.0 / 0.0; // Is f ALWAYS in any platform is NaN?
Run Code Online (Sandbox Code Playgroud)

c nan infinity

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

C:printf中的ptrdiff_t应该使用哪个字符?

哪些字符应该用于ptrdiff_tprintf

请问C标准明确说明如何打印ptrdiff_tprintf?我还没找到任何人.

int a = 1;
int b = 2;

int* pa = &a;
int* pb = &b;

ptrdiff_t diff = b - a;

printf("diff = %?", diff); // % what?
Run Code Online (Sandbox Code Playgroud)

c printf pointers

26
推荐指数
3
解决办法
5704
查看次数

哪些功能使类成为线程安全的?

在MSDN中,一些.NET类描述如下:

" 这种类型是线程安全的. "

要么

" 此类型的公共静态(在Visual Basic中为Shared)成员是线程安全的.实例成员不保证是线程安全的."

我的问题是哪些功能使一个类是线程安全的?

  • 线程安全编程是否有任何标准,建议或指南?

  • 当我使用lock(C#)关键字时,这意味着我的类是否是线程安全的?

  • 如何评估一个类的线程安全性?是否有任何测试可以确保一个类是100%线程安全的?

例:

public class MyClass
{
    public void Method()
    {
        lock (this)
        {
            // Now, is my class 100% thread-safe like Microsoft classes?
        }
    }
    type m_member1;
    type m_member2;
}
Run Code Online (Sandbox Code Playgroud)

谢谢

c# multithreading thread-safety

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

是否可以在Linux上使用C++开发可加载的内核模块(LKM)?

当我开发一个可加载的内核模块(LKM)时,我应该使用C吗?

是否有可能在Linux上使用C语言以外的语言开发可加载的内核模块(LKM),例如C++?

c c++ linux-kernel

18
推荐指数
2
解决办法
6946
查看次数

如何在Visual Studio上启用__int128?

当我__int128在Visual Studio中键入C++项目时,编辑器将颜色更改__int128为蓝色(如关键字).

但是当我编译源代码时,会出现以下错误:

error C4235: 
nonstandard extension used : '__int128' keyword not supported on this architecture
Run Code Online (Sandbox Code Playgroud)

如何__int128在Visual Studio上启用?

c++ int128 visual-studio

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

div函数有用吗(stdlib.h)?

在C,C++(stdlib.h)中有一个名为div的函数

div_t div(int numer, int denom);

typedef struct _div_t
{
  int quot;
  int rem;
} div_t;
Run Code Online (Sandbox Code Playgroud)

但是C,C++有/和%运算符.

我的问题是:" 当有/和%运算符时,div函数有用吗?"

c c++ integer-division

16
推荐指数
4
解决办法
5041
查看次数

哪种方法更适合实现get/set?

实现get/set有两种方法.

方法1:

单独定义get和set.

class my_class
{
  // ...
};

class main_class
{
public:

  my_class get_data() const
  {
    return m_data;
  }

  void set_data(my_class value)
  {
    m_data = value;
  }

private:

  my_class m_data;
};
Run Code Online (Sandbox Code Playgroud)

注意:在这种方法中,get足够快:http://cpp-next.com/archive/2009/08/want-speed-pass-by-value

另一种方法是(方法2):

定义两个get主体,First const和另一个非const.

class my_class
{
  // ...
};

class main_class
{
public:

  const my_class& get_data() const
  {
    return m_data;
  }

  my_class& get_data() // Works like set.
  {
    return m_data;
  }

private:

  my_class m_data;
};
Run Code Online (Sandbox Code Playgroud)

使用这些方法:

void main()
{
  main_class cls;

  // For …
Run Code Online (Sandbox Code Playgroud)

c++ get set

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

是否可以编译在所有Linux发行版中执行而无需重新编译的C/C++源代码?

是否可以编译在所有Linux发行版中执行而无需重新编译的C/C++源代码?

如果答案是肯定的,我可以使用任何外部(非标准C/C++)库吗?

我想分发我的二进制应用程序而不是分发源代码.

c c++ linux

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