小编Nat*_*han的帖子

Linux 中的 C++ 线程

我正在尝试在 Linux 中创建一个多线程 C++ 程序。我以前在 Windows 上使用过 pthreads 库,但我听说它不是 Linux 的标准。对于 Linux 上的 C++,您建议使用什么线程库?有哪些选项,什么是最常见的,什么通常是最快的?谢谢!

编辑:我错误地认为 pthreads 不是 Linux 原生的,正如我所说,这是我不久前听到的。我主要是在寻找各种线程选项的效率之间的比较,并且特别好奇有关 c-11 线程库与我之前使用过的 pthread 的执行情况的信息。我被误导了,我发布这个问题是为了获得更多信息。没必要太恶心。

c++ linux multithreading

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

React-bootstrap 表单中的自定义验证不起作用

我正在尝试将自定义验证逻辑添加到我的react-bootstrap表单中,但isInvalid似乎没有得到尊重。一旦validated={true}在表单上设置,它总是验证非空字符串,无论isValidisInvalid。显示无效消息,但该字段显示为绿色。看这里:

在此输入图像描述

这是有问题的代码:

 <Form noValidate validated={formValidated} id="bidForm">
    <Form.Group className="mb-3" controlId="formBasicBidding">
       <Form.Label>Bid Amount</Form.Label>
       <InputGroup hasValidation className="mb-3">
           <InputGroup.Text id="inputGroupPrepend">$</InputGroup.Text>
           <Form.Control
              required
              value={bidAmount}
              isInvalid={!(parseInt(bidAmount) > 0) && formValidated}
              onChange={e => setBidAmount(e.target.value)}
           />
           <InputGroup.Text id="inputGroupAppend">.00</InputGroup.Text>
           <Form.Control.Feedback type="invalid">
               Please select a dollar amount {`>`} 0
           </Form.Control.Feedback>
        </InputGroup>
    </Form.Group>
    <...>
</Form>
Run Code Online (Sandbox Code Playgroud)

我能够pattern=在输入上使用正则表达式使其工作,但我计划在正则表达式不够的情况下进行更复杂的验证。我怎样才能正确地react-bootstrap遵循?谢谢!isValidisInvalid

css forms required reactjs react-bootstrap

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

Haskell正弦和余弦函数不起作用

好的,这是一个非常奇怪的问题.

内置的Haskell正弦函数(sin)似乎不起作用.

sin 0正确地给出了0.

sin pi 无论出于何种原因, 1.2246467991473532e-16

这些都是使用内置的前奏函数.我只是启动ghci(Haskell解释器),输入sin pi并得到错误的答案.

另外,cos (pi/2)给出6.123233995736766e-17

任何想法为什么会这样?看起来函数的构建是完全错误的......看起来,Haskell标准库的数学定位是非常不可能的.

编辑:嘿,我只是简单地忽略了e-16 ..我猜这就是我深夜编码的原因.谢谢大家!

haskell pi trigonometry ghci

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

如何在Clojure中组合let绑定和if语句

我正在学习Clojure,并试图找出简洁明了的语言.我试图从一个返回值或nil的函数获取一个值(比如从数据库中)后,有条件地对某个值执行某些操作.我目前正在使用let绑定,然后使用if语句.这与我目前的情况类似:

(defn foo [key]
  (let [result (try-getting! key)]
    (if result
      (+ result 50)
      50)))
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚是否有更简洁的方法来做到这一点,也许是某种组合的if-let绑定?有没有办法更好地写这个?

谢谢!

clojure

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

这个函数的大O符号是什么?

对于以下伪代码,最糟糕的时间复杂度大O符号是什么?(假设函数调用是O(1))我对大O表示法很新,所以我不确定答案但是我在考虑O(log(n)),因为while循环参数每次乘以2或者那只是O(loglog(n))?或者我错了两个方面?任何输入/帮助都是值得赞赏的,我正试图掌握大O符号的概念,因为我刚刚开始学习最糟糕的时间复杂度.谢谢!

i ? 1
while(i<n)
    doSomething(...)
    i ? i * 2
done
Run Code Online (Sandbox Code Playgroud)

algorithm big-o time-complexity

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

变量引用

我正在学习引用和指针,本教程中的内容并没有为我编译(我正在使用GCC).

好的,这是代码:

#include <iostream>

using namespace std;

int main()
{
int ted = 5;
int andy = 6;

ted = &andy;

cout << "ted: " << ted << endl;
cout << "andy: " << andy << endl;
}
Run Code Online (Sandbox Code Playgroud)

编译器输出显示"错误:从'int*'到'int'的无效转换"我也尝试了一个string = v; v =&andy; 但那也不起作用.

如何将内存地址分配给变量?

c++ pointers

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

SQL组求和

好吧,说我有两个栏目,人和捐赠.例如,将这些作为行:

+++++++++++++++
Fred | $1000 
Fred |  $500 
Bob  | $1000
Bob  | $7000
Sally|  $500
Joe  |  $100  
+++++++++++++++
Run Code Online (Sandbox Code Playgroud)

我怎么能让它显示以下内容?

+++++++++++++++
Fred | $1500
Bob  | $8000
Sally|  $500
Joe  |  $100  
+++++++++++++++
Run Code Online (Sandbox Code Playgroud)

换句话说,我怎样才能将某人捐赠的所有捐款合并在一起,并总结一下?什么是一个可以实现此目的的示例查询?(如果可能的话,一般来说,这不涉及在select/sum子句中单独命名人员)

谢谢!

sql sum

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

Python全局列表

我正在学习python,并且遇到了全局变量/列表的问题.我正在编写河内程序的基本手册,这是目前的程序:

pilar1 = [5,4,3,2,1,0]
pilar2 = [0,0,0,0,0,0]
pilar3 = [0,0,0,0,0,0]

def tower_of_hanoi():

    global pillar1
    global pillar2
    global pillar3

    print_info()

def print_info():

    global pillar1
    global pillar2
    global pillar3

    for i in range(4,-1,-1):
        print(pillar1[i], " ", pillar2[i], " ", pillar3[i])
Run Code Online (Sandbox Code Playgroud)

我尝试了一些变化,但每次我收到错误"NameError:全局名称'pillar1'未定义".

在此设置中处理全局列表的最佳方法是什么?如果可能的话,我更愿意只使用一个源文件.谢谢!

python list globals

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

Haskell递归效率

我正在做一些Project Euler项目(不是作为功课,只是为了娱乐/学习),而且我正在学习Haskell.其中一个问题是找到最大的Collat​​z序列,起始数量低于100万(http://projecteuler.net/problem=14)

无论如何,我能够做到这一点,我的算法工作,并在编译时得到正确的答案.但是,它使用1000000深度递归.

所以我的问题是:我做对了吗?原样,Haskell的正确方法是什么?我怎么能让它更快?另外,在内存使用情况下,如何在低级别实际实现递归?如何使用内存?

(SPOILER ALERT:如果你想在不看答案的情况下自己解决Project Euler的#14问题,请不要看这个.)

--haskell script --problem:找到一个不到200万的最长的collat​​z链.

collatzLength x| x == 1 = 1
               | otherwise = 1 + collatzLength(nextStep x)


longestChain (num, numLength) bound counter
           | counter >= bound = (num, numLength)
           | otherwise = longestChain (longerOf (num,numLength)
             (counter,   (collatzLength counter)) ) bound (counter + 1)
           --I know this is a messy function, but I was doing this problem just 
           --for myself, so I didn't bother making some utility functions …
Run Code Online (Sandbox Code Playgroud)

memory recursion haskell

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

适合内容的最小宽度 MUI 数据网格弹性列

我正在使用 MUI 数据网格(麻省理工学院许可版本)。

我将列设置为flex,因为我希望它们填满可用宽度。但是,如果表格调整得太小,我希望表格溢出(需要滚动)。

例如,对于电子邮件列,我希望它的宽度永远不会小于最长电子邮件的宽度(因此文本永远不会有...),但让它扩展其宽度以填充可用空间。

我知道我可以number为列设置 minWidth,但无法设置auto或类似的内容。有什么办法可以做到这一点,如果列中的某些数据太大,数据网格就会溢出?

reactjs material-ui

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

Scala通用方法在字符串中的换行符上拆分

我正在寻找一种干净的方法来分割Scala中的字符串中的换行符,无论换行符是CR和/或LF.我一直在使用.split一个基本的正则表达式,但它看起来很难看,因为标准库自然会为系统无关的代码封装 - 有没有标准的库函数呢?

提前致谢!

编辑:

我喜欢我的代码与系统无关,因为它是JVM的一大卖点.让我的代码知道硬编码字符串中的不同操作系统约定 - 文字正则表达式似乎(非常轻微地)打破了这一点.似乎应该由功能丰富的Scala标准库自然地抽象出来,我只是想知道是否存在内置方法.

string split scala input line-breaks

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