小编der*_*khh的帖子

有没有在boost 1.48.0下使用互斥的最新例子?

我在网上找到的大多数例子都是过时的,使用了boost :: mutex,我没有宣布包括或者.有没有明确的例子说明如何在ver 1.48.0中使用boost :: mutex?第27章(线程)的教程非常不清楚,不提供任何代码示例.

c++ multithreading boost mutex

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

在C#中C++相当于新的Random(种子)

当我们在C#中使用随机数生成器时,我们可以定义一个变量

private Random _rndGenerator;
Run Code Online (Sandbox Code Playgroud)

在课堂上然后打电话

_rndGenerator = new Random(seed);
Run Code Online (Sandbox Code Playgroud)

正确地在类的构造函数中.

我的问题是:

什么是这种定义的C++等价物(即类中的RNG).我认为这不是一个正确的使用方法

srand((unsigned int)seed);
Run Code Online (Sandbox Code Playgroud)

对?

c# c++ random

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

我们可以只为某些数据类型定义模板函数吗?

可能重复:
仅接受某些类型的C++模板

例如,如果我们想要定义一个模板函数,我们可以使用整数,浮点数,双精度数而不是字符串.有一个简单的方法吗?

c++ templates

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

我应该如何正确地将cout分配给静态ostream引用变量?

我正在定义一个这样的类:

class StaticRuntimeContext {
 public:
  enum Verbosity {
    kHIGH,
    kMEDIUM,
    kLOW,
    kSILENT
  };
  static void Construct();
  static std::ostream& stdout1() {return stdout1_;}
  static std::ostream& stdout2() {return stdout2_;}
  static std::ostream& stdout3() {return stdout3_;}
  static std::ostream& stderr() {return stderr_;}
 protected:
 private:
  static std::ostream& stdout1_;
  static std::ostream& stdout2_;
  static std::ostream& stdout3_;
  static std::ostream& stderr_;
};
Run Code Online (Sandbox Code Playgroud)

我将构造函数定义为:

void StaticRuntimeContext::Construct() {
  std::ostream& test = cout;
  stdout1_ = cout;
  stdout2_ = cout;
  //stdout3_ = NULL;
  stderr_ = cerr;
}
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么将cout分配给test(std :: ostream&)可以编译,但编译器会为其余部分生成错误消息,如"stdout1_ = cout".错误消息是:

/usr/lib/gcc/x86_64-redhat-linux/4.6.2/../../../../include/c++/4.6.2/bits/ios_base.h:791:5: error: ‘std::ios_base& …
Run Code Online (Sandbox Code Playgroud)

c++ iostream ostream

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

这个"this"关键字的含义是什么?

一个非常短的C#函数.

    public static int SizeInBytes(this byte[] a)
    {
        return sizeof (int) + a.Length*sizeof (byte);
    }
Run Code Online (Sandbox Code Playgroud)

"this"关键字在此函数中的含义是什么?在C++中,这个关键字的等价物是什么?此外,这个功能试图准确计算什么?

c# c++ this

5
推荐指数
2
解决办法
445
查看次数

在C++中快速实现MD5

首先,要清楚,我知道C++中存在大量的MD5实现.这里的问题是我想知道是否有比较哪个实现比其他实现更快.由于我在大小超过10GB的文件上使用这个MD5哈希函数,因此速度确实是一个主要问题.

c++ algorithm hash md5

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

C#中多线程和多任务的区别

可能的重复:
任务和线程有什么区别?

我知道标题本身可能看起来是一个重复的问题,但我确实阅读了与此主题相关的所有以前的帖子,但仍然不太了解程序行为。

我目前正在编写一个检查大约 1,000 个电子邮件帐户的小程序。毫无疑问,我觉得多线程或多任务是正确的方法,因为每个线程/任务的计算成本并不高,但每个线程的持续时间在很大程度上依赖于网络 I/O。

我认为在这种情况下,将线程/任务的数量设置为远大于内核数量也是合理的。(i5-750 为四个)。因此,我将线程或任务的数量设置为 100。

使用 Tasks 编写的代码片段:

        const int taskCount = 100;
        var tasks = new Task[taskCount];
        var loopVal = (int) Math.Ceiling(1.0*EmailAddress.Count/taskCount);

        for (int i = 0; i < taskCount; i++)
        {
            var objContainer = new AutoCheck(i*loopVal, i*loopVal + loopVal);
            tasks[i] = new Task(objContainer.CheckMail);
            tasks[i].Start();
        }
        Task.WaitAll(tasks);
Run Code Online (Sandbox Code Playgroud)

使用 Threads 编写的相同代码片段:

        const int threadCount = 100;
        var threads = new Thread[threadCount];
        var loopVal = (int)Math.Ceiling(1.0 * EmailAddress.Count / threadCount);

        for (int i = 0; i …
Run Code Online (Sandbox Code Playgroud)

c# multithreading task-parallel-library

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

我该如何解码UTF-8字符串

我有一个字符串:

About \xee\x80\x80John F Kennedy\xee\x80\x81\xe2\x80\x99s Assassination . unsolved mystery \xe2\x80\x93 45 years later. Over the last decade, a lot of individuals have speculated on conspiracy theories that ...
Run Code Online (Sandbox Code Playgroud)

我明白这\xe2\x80\x93是一个破折号.但是我应该如何解码C#中的上述字符串?

c# string utf-8

5
推荐指数
2
解决办法
9870
查看次数

Task.Factory.StartNew不会等待任务完成?

我发现以下代码实际上不会等待任务client.SendAsync()如果我使用实现:

taskList.Add(Task.Factory.StartNew(() => new Program().Foo()));
Run Code Online (Sandbox Code Playgroud)

如果我将其更改Task.Factory.StartNew()为just new Program().Foo()或者Task.Run(() => new Program.Foo()它将正确输出一些信息.两者有什么不同?

internal class Program
{
    private async Task Foo()
    {
        while (true)
        {
            var client = new HttpClient();
            var requestMessage = new HttpRequestMessage(HttpMethod.Head, "http://www.google.com");
            HttpResponseMessage response = await client.SendAsync(requestMessage);
            Console.WriteLine(response.RequestMessage.RequestUri.ToString());
        }
    }

    private static void Main(string[] args)
    {
        var taskList = new List<Task>();

        // This won't output anything.
        taskList.Add(Task.Factory.StartNew(() => new Program().Foo()));

        // This will.
        taskList.Add(Task.Run(() => new Program().Foo()));

        // So does this.
        taskList.Add(new Program().Foo()); …
Run Code Online (Sandbox Code Playgroud)

c# task-parallel-library async-await

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

有没有办法清除 CookieContainer?

我想清除 CookieContainer 中收到的所有 cookie,而无需初始化新的 CookieContainer、HttpClientHandler 和 HttpClient。有办法吗?我已经检查过MSDN,但似乎我只能使用 GetCookies(Uri) 来获取与特定 Uri 关联的所有 cookie。

var cc = new CookieContainer();

var handler = new HttpClientHandler
    {
        CookieContainer = cc
    };

var client = new HttpClient(handler);
Run Code Online (Sandbox Code Playgroud)

c# cookies httpclient

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