小编der*_*khh的帖子

COUNT DISTINCT条件

我想计算受特定条件限制的列中不同项目的数量,例如,如果表格如下:

tag | entryID
----+---------
foo | 0
foo | 0
bar | 3
Run Code Online (Sandbox Code Playgroud)

如果我想将不同标签的数量计为"标签计数"并在同一个表中将条目ID> 0的不同标签的数量计为"正标签计数",我该怎么办?

我现在从两个不同的表中计算,在第二个表中我只选择了entryID大于零的那些行.我认为应该有一种更紧凑的方法来解决这个问题.

sql

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

在C#中是否存在IEnumerable <T>的标准C++等价物?

或者,如果T的枚举器只是列出所有元素,那么使用向量是否安全?

c# c++ ienumerable

37
推荐指数
4
解决办法
2万
查看次数

使用Task.WaitAll()来处理等待的任务?

理想情况下,我想要做的是使用非阻塞模式延迟任务,然后等待所有任务完成.我试图添加Task.Delay返回的任务对象,然后使用Task.WaitAll但似乎这没有帮助.我该如何解决这个问题?

class Program
{
    public static async void Foo(int num)
    {
        Console.WriteLine("Thread {0} - Start {1}", Thread.CurrentThread.ManagedThreadId, num);

        var newTask = Task.Delay(1000);
        TaskList.Add(newTask);
        await newTask;

        Console.WriteLine("Thread {0} - End {1}", Thread.CurrentThread.ManagedThreadId, num);
    }

    public static List<Task> TaskList = new List<Task>();

    public static void Main(string[] args)
    {
        for (int i = 0; i < 3; i++)
        {
            int idx = i;
            TaskList.Add(Task.Factory.StartNew(() => Foo(idx)));
        }

        Task.WaitAll(TaskList.ToArray());
    }
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading async-await

27
推荐指数
2
解决办法
8万
查看次数

为什么使用std :: thread :: hardware_concurrency()和boost :: thread :: hardware_concurrency()会有区别?

问题本身的描述非常简单.我正在测试C++ 11和boost :: thread库中std :: thread库的差异.

这些的输出:

#include <iostream>
#include <thread>
#include <boost/thread.hpp>

int main() {
  std::cout << std::thread::hardware_concurrency() << std::endl;
  std::cout << boost::thread::hardware_concurrency() << std::endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

给我不同的结果:

0
4
Run Code Online (Sandbox Code Playgroud)

这是为什么?

PS:gcc包的版本是4.6.2-1.fc16(x86_64).我正在使用

g++ test.cc -Wall -std=c++0x -lboost_thread-mt -lpthread
Run Code Online (Sandbox Code Playgroud)

linux multithreading boost c++11

23
推荐指数
2
解决办法
6894
查看次数

Linux下的AutoResetEvent的C++等价物是什么?

MSDN中AutoResetEvent的说明

我正在尝试将在C#中实现的线程池移植到Linux下的C++中.我不知道我应该使用哪些功能与"AutoResetEvent"具有相似的行为.

.net c# c++ linux multithreading

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

有没有一种简单的方法在C++ 0x中实现AutoResetEvent?

我知道我之前已经问过这个问题:Linux下的AutoResetEvent的C++等价物是什么?

但是,我知道在C++ 0x中,线程库变得更加简单,所以我想再次提出这个问题,是否有一种在C++ 0x中实现AutoResetEvent的简单方法?

c++ multithreading autoresetevent c++11

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

我们应该如何计算SQL中不同对/元组的数量?

假设架构是这样的:

First Name | Last Name | Age | ID
====================================
John         Smith       18    123
John         Smith       21    234
John         Smith       19    123
Cathy        Zhang       20    144
Cathy        Zhang       20    144
Jackie       Chan        35    456
Run Code Online (Sandbox Code Playgroud)

假设我想计算每个(名字,姓氏)之后的不同对的数量.所以输出应该是:

John         Smith       3
Cathy        Zhang       1
Jackie       Chan        1
Run Code Online (Sandbox Code Playgroud)

我想我可以先做:

SELECT FirstName,LastName,Age,ID,COUNT(*);
Run Code Online (Sandbox Code Playgroud)

然后

SELECT FirstName,LastName,COUNT(*)
Run Code Online (Sandbox Code Playgroud)

有更好的方法吗?

sql

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

在TLS加密下使用DefaultNetworkCredential?

我们公司正在将SMTP邮件服务器切换到Office 365.关键问题是新的SMTP服务器"smtp.office365.com"仅支持TLS加密.因此,我不能使用CredentialCache.DefaultNetworkCredentials自动编码我的Windows登录密码.

        var smtpClient = new SmtpClient("smtp.oldserver.com")
        {
            Credentials = CredentialCache.DefaultNetworkCredentials
        };

        const string from = "myemail@xyz.com";
        const string recipients = "myemail@xyz.com";
        smtpClient.Send(from, recipients, "Test Subject", "Test Body");
Run Code Online (Sandbox Code Playgroud)

以前这个没有任何问题.但是,如果我现在将上述代码段更改为:

        var smtpClient = new SmtpClient("smtp.office365.com");
        smtpClient.EnableSsl = true;
        smtpClient.Port = 587;
        smtpClient.Credentials = CredentialCache.DefaultNetworkCredentials;
Run Code Online (Sandbox Code Playgroud)

我现在得到:

Unhandled Exception: System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM
Run Code Online (Sandbox Code Playgroud)

但是,如果我在代码中指定我的Windows登录用户名和密码,它可以正常工作: …

.net c# email smtp

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

有没有在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# ×5

c++ ×5

multithreading ×5

.net ×2

boost ×2

c++11 ×2

linux ×2

sql ×2

async-await ×1

autoresetevent ×1

email ×1

ienumerable ×1

mutex ×1

random ×1

smtp ×1