小编Sno*_*lor的帖子

从标准输入 C++ 读取数百万个整数的最快方法?

我正在做一个排序项目,我已经到了一个主要瓶颈是读取数据的地步。我的程序需要大约 20 秒才能使用从 stdin 读取的 100,000,000 个整数进行排序cinstd::ios::sync_with_stdio(false);但事实证明,其中 10 秒正在读取数据进行排序。我们确实知道我们将读取多少个整数(计数位于我们需要排序的文件的顶部)。

我怎样才能更快?我知道这是可能的,因为上一学期的学生能够在 3 秒多一点的时间内完成计数排序(这基本上是纯粹的阅读时间)。

该程序只是以换行符分隔的整数输入文件的内容,例如 $ ./program < numstosort.txt

谢谢

这是相关的代码:

    std::ios::sync_with_stdio(false);
    int max;
    cin >> max;
    short num;
    short* a = new short[max];
    int n = 0;
    while(cin >> num) { 
        a[n] = num;
        n++;
    }
Run Code Online (Sandbox Code Playgroud)

c++ sorting io file

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

无法成功执行 Paypal webhook 验证

我正在努力验证 Paypal webhook 数据,但我遇到了一个问题,它总是为验证状态返回 FAILURE。我想知道是不是因为这一切都发生在沙盒环境中,而 Paypal 不允许对沙盒 webhook 事件进行验证?我按照这个 API 文档来实现调用:https : //developer.paypal.com/docs/api/webhooks/v1/#verify-webhook-signature

相关代码(来自单独的 elixir 模块):

def call(conn, _opts) do
  conn
    |> extract_webhook_signature(conn.params)
    |> webhook_signature_valid?()
    |> # handle the result
end

defp extract_webhook_signature(conn, params) do
  %{
    auth_algo: get_req_header(conn, "paypal-auth-algo") |> Enum.at(0, ""),
    cert_url: get_req_header(conn, "paypal-cert-url") |> Enum.at(0, ""),
    transmission_id: get_req_header(conn, "paypal-transmission-id") |> Enum.at(0, ""),
    transmission_sig: get_req_header(conn, "paypal-transmission-sig") |> Enum.at(0, ""),
    transmission_time: get_req_header(conn, "paypal-transmission-time") |> Enum.at(0, ""),
    webhook_id: get_webhook_id(),
    webhook_event: params
  }
end

def webhook_signature_valid?(signature) do
  body = Jason.encode!(signature)
  case …
Run Code Online (Sandbox Code Playgroud)

paypal elixir webhooks phoenix-framework paypal-webhooks

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