前段时间我在我的机器上激活了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) 在我的应用程序中,有可能(并且有意!)SnackBar创建多个元素。这些SnackBar元素依次排队并显示,一切都很好。但是,如果我转到不同的屏幕然后返回(因此push和pop一条路线),所有SnackBar元素仍然存在。
所以我想SnackBar在推送路线时删除所有 s 。
我尝试计算我的SnackBar元素并scaffoldKey.currentState.removeCurrentSnackBar()在以下位置多次调用:
然而,在此之前Navigator.push(),由于我有多个点推送某些内容,所以我想使用一些回调。
然而,在didPushRoute()from中WidgetsBindingObserver,即使在注册观察者之后,也永远不会调用此方法。(ChangeAppLifecycleState()被调用所以注册似乎并没有完全错误?)
在dispose()。这实际上产生了我想要的行为,但抛出了异常AnimatedBuilder(异常文本:“ setState() or markNeedsBuild() called during build.”),我想避免这种情况,即使动画库似乎捕获了这些异常。
如果一切都失败了,我想我可以包装Navigator.push()一个辅助函数来清除SnackBar队列,但我希望有一种更优雅的方式。
考虑我们需要实现一个f带有模板参数的函数T t。该函数不应同时复制t和接受rvalues和lvalues,因此可能有两种实现:
template <class T>
void f(const T& t) { ... }
template <class T>
void f(T&& t) { ... }
Run Code Online (Sandbox Code Playgroud)
如果我们想改变t里面f的值或者需要保留类的值,就得使用第二个版本了。那么根据这个思路,我们何时以及为什么会选择第一个选项?
我想制作一个散点图,其中每个点都有一个球体。点及其球体都根据某些列值着色。
一个显示我想要的最小示例:
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具有纯色和透明笔触但不是恒定颜色的图像?
bash我对编辑正在运行的脚本时的两种看似不同的行为感到摸不着头脑。
这里不是讨论为什么要这样做的地方(你可能不应该这样做)。我只想尝试了解发生了什么以及为什么。
$ 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”。
创建一个脚本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) 我需要遍历大量(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)