小编Ste*_*lis的帖子

dijkstras算法是否按顺序放宽最短路径的边缘?

在"算法简介,第3版"练习24.3-5中想要一个例子,这是错误的(并非总是如此).那可能吗?在我看来,这是不可能的,因为在已经确定当前顶点的路径时,每个边都放松了.

一字一字:

N. N.教授声称有一个Dijkstra算法正确性的证明.他声称Dijkstra算法按照它们在路径上出现的顺序放宽图中每条最短路径的边缘,因此路径松弛属性适用于从源可到达的每个顶点.通过构建有向图来显示教授是错误的,Dijkstra的算法可以无序地放松最短路径的边缘.

algorithm dijkstra shortest-path clrs

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

如何在Android上获取默认颜色

我有一个自定义组件,我想提供与TextView相同的颜色.也就是说,我不希望复制它的颜色,我希望得到默认的前景色和背景色,如果有在Android这样的概念.

[编辑]

以下似乎产生我的TextView的文本颜色.但这只是运气吗?对我来说,默认的TextView会使用它并不直观android.R.attr.textColorSecondary吗?为什么不resolveAttribute直接返回颜色?

TypedValue tv = new TypedValue();
getContext().getTheme().resolveAttribute(android.R.attr.textColorSecondary, tv, true);
Color holyColor = getResources().getColor(tv.resourceId);
Run Code Online (Sandbox Code Playgroud)

[编辑]

我在android.git.kernel.org找到了TextView的源代码,但它似乎包含很多com.android.internal.R引用,我认为我不应该在自己的代码中使用它.我目前正在寻找一些TextView使用的证据android.R.attr.textColorSecondary.

[编辑]

我发现了某种证据developer.android.com,在styles.xml该TextView使用android.R.attr.textAppearanceSmall.textAppearanceSmall记录为默认为"辅助文本颜色".

我想我毕竟很幸运,但我仍然不喜欢我的那个小代码片段.

android

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

ValueTuples是否适合作为字典键?

我想这可能是一个方便的字典:

var myDict = new Dictionary<(int, int), bool>();
Run Code Online (Sandbox Code Playgroud)

哈希会是什么样子?
等效键类型(struct)是什么样的?

c# dictionary valuetuple

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

使用谓词从列表中删除元素

我有一个.NET集合库的列表,我想删除一个元素.可悲的是,我无法通过直接与另一个对象进行比较来找到它.

我担心,使用FindIndex和RemoveAt将导致列表的多个遍历.

我不知道如何使用枚举器来删除元素,否则可能会有效.

RemoveAll 做我需要的,但在找到一个元素后不会停止.

想法?

c# collections linked-list list

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

是否有一个处理重复的已排序的java集合?

我需要一个像C++ multimap一样的集合,但我还需要能够通过一系列键来获取元素.

java collections multimap sortedlist

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

从Android上的默认设置制作自定义标题视图

如何使用androids默认窗口标题样式来使我自己的类似TextView?

我做了很多猜测,并制作了一个TextView,它具有默认标题栏所具有的一切,除了文本阴影(以及一些填充/边距等等).

这基本上是我尝试过的:

MainUI.xml

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.main);

    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar);
}
Run Code Online (Sandbox Code Playgroud)

title_bar.xml

<?xml version="1.0" encoding="utf-8"?>

<TextView 
  xmlns:android="http://schemas.android.com/apk/res/android" 
  android:id="@+id/myTitle"
  android:layout_height="fill_parent"
  android:layout_width="fill_parent"
  android:textAppearance="@android:style/TextAppearance.WindowTitle"
  android:background="@android:drawable/title_bar"
  android:text="This is my new title" />
Run Code Online (Sandbox Code Playgroud)

编辑:

我在makemachine和anddev找到了一些有趣的相关文章.

虽然我不喜欢它,但我从实现style.xml中复制了一些属性.

有没有办法避免以这种静态方式复制属性?

以下渲染几乎完美,不同之处在于事实上原版确实"剪切"了标题阴影的前2-3个像素,而我TextView没有.

<TextView 
  xmlns:android="http://schemas.android.com/apk/res/android" 
  android:id="@+id/myTitle"
  android:layout_height="fill_parent"
  android:layout_width="fill_parent"
  android:gravity="center_vertical"
  android:shadowColor="#BB000000"
  android:shadowRadius="2.75"
  android:singleLine="true"
  android:textAppearance="@android:style/TextAppearance.WindowTitle"
  android:background="@android:drawable/title_bar"
  android:text="This is my new title" />
Run Code Online (Sandbox Code Playgroud)

使用透明颜色覆盖默认的android:windowTitleBackgroundStyle也很重要,因为默认情况下包含一些不希望包装自定义标题栏的填充等.

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="CustomTheme" parent="android:Theme">
    <item name="android:windowTitleBackgroundStyle">@android:color/transparent</item>
  </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

请记住在您的主题中启用主题 AndroidManifest.xml

android

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

我可以使用 setTimeout 创建一个廉价的无限循环吗?

var recurse = function(steps, data, delay) {
    if(steps == 0) {
        console.log(data.length)
    } else {
        setTimeout(function(){
            recurse(steps - 1, data, delay);
        }, delay);
    }
};

var myData = "abc";
recurse(8000, myData, 1);
Run Code Online (Sandbox Code Playgroud)

这段代码让我烦恼的是我传递了一个字符串 8000 次。这会导致任何类型的内存问题吗?

另外,如果我使用 node.js 运行此代码,它会立即打印,这不是我所期望的。

javascript functional-programming memory-management node.js

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

我可以通过引用返回来获取列表项吗?

我有一个要修改的元组列表。

    var myList = new List<(int head, int[] tail)> {
        (0, new[] { 1, 2, 3 }),
        (7, new[] { 8, 9 }   ), };
    var myArray = new (int head, int[] tail)[] {
        (0, new[] { 1, 2, 3 }),
        (7, new[] { 8, 9 }   ), };

    // ...

    // ref var firstElement = ref myList[0];
    ref var firstElement = ref myArray[0];
    firstElement.head = 99;
Run Code Online (Sandbox Code Playgroud)

这非常适合数组,但不适用于列表。我知道这是因为索引器不执行引用返回;但是列表是否可以通过其他方式通过引用返回其元素,以便我可以修改返回的元组?

这将导致编译器错误“属性或索引器可能无法作为 out 或 ref 参数传递”:

ref var firstElementList = ref …
Run Code Online (Sandbox Code Playgroud)

c#

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

你能在C#中实例化一个泛型类型参数的嵌套类型吗?

以下代码导致编译器错误,我认为不应该是必需的.有一个很好的解决方法吗?

错误CS0704:无法通过类型参数"T"指定嵌套类型

public class Base<T>
{
    public T genericData;
    public Nested data;
    public class Nested
    {
    }

    public static B Create<B>() where B : Base<T>, new() {
        var result = new B();
        result.data = default(B.Nested);
        return result;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# generics

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

命令替换如何与find一起使用?

我有以下命令

find . -name "*.tiff" -exec echo `basename -s .tiff {}` \;

我希望这可以在没有文件扩展名的情况下打印我的所有.tiff文件.我得到的是

./file1.tiff
./file2.tiff
...
Run Code Online (Sandbox Code Playgroud)

命令,

find . -name "*.tiff" -exec basename -s .tiff {} \;

收益率

file1
file2
...
Run Code Online (Sandbox Code Playgroud)

这不应该是回声的输入吗?

unix macos shell find

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