小编Ser*_*sly的帖子

在windows子系统上为linux安装g ++

前段时间我在我的机器上激活了Windows子系统Linux,但没有使用它.现在我知道我可以使用它,这就是为什么我试图在我的WSL上安装gcc/++ 7并继续遇到问题.

我的想法是下载它并按照本指南手动编译:

../gcc/configure -v --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --prefix=${HOME}/software/gcc-7.3.0/installDir --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib
Run Code Online (Sandbox Code Playgroud)

这导致以下错误:

checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking LIBRARY_PATH variable... ok
checking GCC_EXEC_PREFIX variable... ok
checking whether to place generated files in the source directory... no
checking whether a default linker was specified... no
checking whether a default assembler was specified... no
checking for x86_64-linux-gnu-gcc... no
checking for gcc... no
checking for x86_64-linux-gnu-cc... no
checking …
Run Code Online (Sandbox Code Playgroud)

linux gcc apt ubuntu-16.04 windows-subsystem-for-linux

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

Flutter:删除所有 SnackBar

在我的应用程序中,有可能(并且有意!)SnackBar创建多个元素。这些SnackBar元素依次排队并显示,一切都很好。但是,如果我转到不同的屏幕然后返回(因此pushpop一条路线),所有SnackBar元素仍然存在。

所以我想SnackBar在推送路线时删除所有 s 。

我尝试计算我的SnackBar元素并scaffoldKey.currentState.removeCurrentSnackBar()在以下位置多次调用:

  • 然而,在此之前Navigator.push(),由于我有多个点推送某些内容,所以我想使用一些回调。

  • 然而,在didPushRoute()from中WidgetsBindingObserver,即使在注册观察者之后,也永远不会调用此方法。(ChangeAppLifecycleState()被调用所以注册似乎并没有完全错误?)

  • dispose()。这实际上产生了我想要的行为,但抛出了异常AnimatedBuilder(异常文本:“ setState() or markNeedsBuild() called during build.”),我想避免这种情况,即使动画库似乎捕获了这些异常。

如果一切都失败了,我想我可以包装Navigator.push()一个辅助函数来清除SnackBar队列,但我希望有一种更优雅的方式。

flutter

6
推荐指数
3
解决办法
4427
查看次数

C++ 何时使用 const 引用而不是转发引用

考虑我们需要实现一个f带有模板参数的函数T t。该函数不应同时复制t和接受rvalueslvalues,因此可能有两种实现:

template <class T>
void f(const T& t) { ... }

template <class T>
void f(T&& t) { ... }
Run Code Online (Sandbox Code Playgroud)

如果我们想改变t里面f的值或者需要保留类的值,就得使用第二个版本了。那么根据这个思路,我们何时以及为什么会选择第一个选项?

c++ const-reference forwarding-reference

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

R ggplot2:如何绘制具有纯色和透明笔划并根据颜色着色的geom_points?

我想制作一个散点图,其中每个点都有一个球体。点及其球体都根据某些列值着色。

一个显示我想要的最小示例:

library(ggplot2)
library(vcd) # only needed for example dataset
ggplot(Arthritis, aes(x = ID, y = Age)) + 
    geom_point(aes(color=Sex), size=10, alpha=.3) + 
    geom_point(aes(color=Treatment), size=3)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

这个“解决方案”的问题是使用geom_point两层似乎会弄乱图例。我想只有geom_point一层并使用也添加笔划的形状也会更有意义,所以像这样:

ggplot(Arthritis, aes(x = ID, y = Age)) + 
    geom_point(aes(color=Sex, fill=Treatment), shape=21, size=5, stroke=5)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 这里的图例更有意义,但是,我不知道如何使笔划透明。这很重要,因为当点重叠时,您将看不到任何东西。

这样的答案并不能解决我的问题,因为它们使用恒定颜色,因此可以使用函数alpha. 但是,我无法弄清楚是否以及如何将其与取决于数据的颜色一起使用。

TL;DR:如何绘制geom_points具有纯色和透明笔触但不是恒定颜色的图像?

r ggplot2

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

Bash 更改运行脚本的差异

bash我对编辑正在运行的脚本时的两种看似不同的行为感到摸不着头脑。

这里不是讨论为什么要这样做的地方(你可能不应该这样做)。我只想尝试了解发生了什么以及为什么。

示例A:

$ echo "echo 'echo hi' >> script.sh" > script.sh
$ cat script.sh
echo 'echo hi' >> script.sh
$ chmod +x script.sh
$ ./script.sh
hi
$ cat script.sh
echo 'echo hi' >> script.sh
echo hi
Run Code Online (Sandbox Code Playgroud)

脚本自行编辑,并直接执行更改(额外的回显行)。多次执行会产生更多行“hi”。

示例B:

创建一个脚本infLoop.sh并运行它。

$ cat infLoop.sh
while true
do
    x=1
    echo $x
done
$ ./infLoop.sh
1
1
1
...
Run Code Online (Sandbox Code Playgroud)

现在打开第二个 shell 并编辑文件,更改x. 例如这样:

$ sed --in-place 's/x=1/x=2/' infLoop.sh
$ cat infLoop.sh
while true
do
    x=2
    echo $x
done …
Run Code Online (Sandbox Code Playgroud)

bash

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

C ++:if内部循环对性能的影响

我需要遍历大量(2D)数据,并且仅有时处理特殊情况。对于我的应用程序来说,速度是最关键的因素。

(我)很快想到的选择是:

选项A:

  • 更具可读性
  • 由于循环内的比较而导致性能下降?
void ifInLoop(bool specialCase, MyClass &acc) {
  for (auto i = 0; i < n; ++i) {
    for (auto j = 0; j < n; ++j) {
      if (specialCase) {
        acc.foo();
      } else {
        acc.bar();
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

选项B:

  • 代码重复
void loopsInIf(bool specialCase, MyClass &acc) {
  if (specialCase) {
    for (auto i = 0; i < n; ++i) {
      for (auto j = 0; j < n; ++j) {
        acc.foo();
      }
    }
  } else { …
Run Code Online (Sandbox Code Playgroud)

c++ premature-optimization micro-optimization

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