小编Auf*_*gel的帖子

为什么带逗号的三元运算符仅在真实情况下评估一个表达式?

我目前正在学习使用C++ Primer一书的C++,本书的其中一个练习是:

解释以下表达式的作用: someValue ? ++x, ++y : --x, --y

我们知道什么?我们知道三元运算符的优先级高于逗号运算符.使用二元运算符这很容易理解,但是对于三元运算符,我有点挣扎.使用二元运算符"具有更高的优先级"意味着我们可以使用具有更高优先级的表达式周围的括号,并且它不会更改执行.

对于三元运算符,我会这样做:

(someValue ? ++x, ++y : --x, --y)
Run Code Online (Sandbox Code Playgroud)

有效地产生相同的代码,这无法帮助我理解编译器如何对代码进行分组.

但是,通过使用C++编译器进行测试,我知道表达式编译并且我不知道:运算符本身可以代表什么.所以编译器似乎正确地解释了三元运算符.

然后我以两种方式执行程序:

#include <iostream>

int main()
{
    bool someValue = true;
    int x = 10, y = 10;

    someValue ? ++x, ++y : --x, --y;

    std::cout << x << " " << y << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

结果是:

11 10
Run Code Online (Sandbox Code Playgroud)

而另一方面someValue = false它与它打印:

9 9
Run Code Online (Sandbox Code Playgroud)

为什么C++编译器生成的代码只能为三元运算符的真分支递增x,而对于三元的假分支,它会减少xy

我甚至把括号括在真正的分支周围,就像这样:

someValue ? …
Run Code Online (Sandbox Code Playgroud)

c++ conditional-operator operator-precedence language-lawyer

118
推荐指数
4
解决办法
6954
查看次数

是否允许在<body>中使用<link>(不是rel ="stylesheet")?

Google,Yahoo和MS 推出的新schema.org建议使用该<link>属性来显示在线商店中产品的状态:

<div itemscope itemtype="http://schema.org/Offer">
  <span itemprop="name">Blend-O-Matic</span>
  <span itemprop="price">$19.95</span>
  <link itemprop="availability" href="http://schema.org/InStock"/>Available today!
</div>
Run Code Online (Sandbox Code Playgroud)

然而,根据w3schools.org <link>只允许在头部:

注意:此元素仅在head部分中出现,但它可以出现任意次.

我不习惯W3C风格,所以我无法理解W3C的确切定义.任何人都可以帮助我:它是否真的允许<link>在体内使用(在HTML5中,因为schema.org使用HTML5标签)或谷歌,雅虎和MS是否打破标准?

html5 w3c-validation

40
推荐指数
4
解决办法
3万
查看次数

如何查看kafka中特定主题的保留情况

我想查看为特定主题设置的保留期.有命令吗?我试图bin/kafka-topics.sh --zookeeper hostname:2181 --alter --config retention.ms=172800000 --topic <topic_name>删除2天的数据.

但我希望看到所有主题的保留期限设置了多少天.

apache-kafka

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

在haskell中细分列表

如何在haskell中将列表分组为相等长度的较小列表(除了最后一个子列表)?

例如

sublist 3 [1,2,3,4,5,6,7,8] -> [[1,2,3],[4,5,6],[7,8]]
sublist 2 [4,1,6,1,7,3,5,3] -> [[4,1],[6,1],[7,3],[5,3]]
Run Code Online (Sandbox Code Playgroud)

haskell

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

清除卡住成员的 Kafka 消费者组

我有一个问题,我的许多来自一个消费者组的 Kafka 客户端没有正确关闭,因此 Kafka 集群认为它们仍然连接。因此,我无法使用我的客户端的新版本连接到消费者组。它将卡在重新平衡步骤中。

根据文档,它们应该在session.timeout.msmax 之后删除group.max.session.timeout.ms。一开始我尝试设置session.timeout.ms30000毫秒(30秒),但是在Kafka启动时并没有列出。group.max.session.timeout.ms在那个时间点设置为 300000 毫秒(5 分钟)。30 秒后消费者没有被删除。

之后我尝试减少group.max.session.timeout.ms到 30000 毫秒(30 秒)并重新启动 Kafka。然而,所有的客户都仍然留在消费者组中。

现在,大约 2 小时后,客户端仍然附加到消费者组。

我试图删除消费者组

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
    --delete --group GroupName
Run Code Online (Sandbox Code Playgroud)

这给了我:

* Group 'GroupName' could not be deleted due to: NON_EMPTY_GROUP
Run Code Online (Sandbox Code Playgroud)

不幸的是,似乎没有--force标志。

接下来,我尝试使用以下命令列出消费者组的所有成员:

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
    --members --group GroupName --describe
Run Code Online (Sandbox Code Playgroud)

这给了我 40-50 个消费者组成员(所有成员都必须处于非活动状态,因为唯一的活动消费者已停止)。

有没有办法让 Kafka 从该组中清除所有消费者或强制它删除整个消费者组?

apache-kafka

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

如何在Python中创建唯一的值优先级队列?

Python有Queue.PriorityQueue,但我看不到一种方法来使其中的每个值都是唯一的,因为没有方法可以检查值是否已经存在(如find(name)或类似).此外,PriorityQueue需要优先级保持在该值内,因此我甚至无法搜索我的值,因为我还必须知道优先级.您将使用(0.5,myvalue)作为PriorityQueue中的值,然后它将按元组的第一个元素排序.

另一方面,collections.deque类提供了一个函数,用于检查值是否已经存在并且在使用中更自然(没有锁定,但仍然是原子的),但它没有提供按优先级排序的方法.

stackq上有一些其他实现与heapq,但heapq也使用值内的优先级(例如在元组的第一个位置),所以它似乎不是很好的比较已有的值.

创建python优先级队列

/sf/ask/231432561/

使用唯一值创建原子优先级队列(=可以从多个线程使用)的最佳方法是什么?

我要添加的示例:

  • 优先级:0.2,值:value1
  • 优先级:0.3,价值:价值2
  • 优先级:0.1,值:value3(应首先自动检索)
  • 优先级:0.4,值:value1(即使优先级不同,也不得再次添加)

python priority-queue

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

我如何用Baum-Welch训练HMM并进行多次观察?

我在理解Baum-Welch算法是如何工作方面遇到了一些问题.我读到它调整了HMM的参数(过渡和发射概率),以便最大化给定模型可以看到我的观察序列的概率.

但是,如果我有多个观察序列会发生什么?我想训练我的HMM反对大量的观察(我认为这是通常做的).

例如,ghmm可以采用单个观察序列和该baumWelch方法的全套观察结果.

它在两种情况下都一样吗?或者算法是否必须同时知道所有观察结果?

hidden-markov-models

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

Stof\DoctrineExtensionsBundle:缺少Doctrine2的标识符/主键

我试图让Stof\DoctrineExtensionsBundle运行,以便能够轻松使用DoctrineExtensions.但是,PHP解释器告诉我:

没有为实体'Stof\DoctrineExtensionsBundle\Entity\Translation'指定标识符/主键.每个实体必须具有标识符/主键.

有谁知道如何规避这个问题?我想它可能在Doctrine2的注释中某处,但我不太了解它并且已经有一个"orm:index"值(用"orm:Id"重命名,这似乎是所需的值,不行).

这是DoctrineExtensions附带的Translation实体类的代码:

/**
 * Stof\DoctrineExtensionsBundle\Entity\Translation
 *
 * @orm:Entity(repositoryClass="Gedmo\Translatable\Entity\Repository\TranslationRepository")
 * @orm:Table(
 *         name="ext_translations",
 *         indexes={@orm:index(name="translations_lookup_idx", columns={
 *             "locale", "object_class", "foreign_key"
 *         })},
 *         uniqueConstraints={@orm:UniqueConstraint(name="lookup_unique_idx", columns={
 *             "locale", "object_class", "foreign_key", "field"
 *         })}
 * )
 */
class Translation extends AbstractTranslation
{
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,如果这有助于任何事情,那就是git存储库.但我无法在文档中找到这一点:https://github.com/stof/DoctrineExtensionsBundle

symfony doctrine-orm

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

如何在ctypes中设置一个带有指向自身的结构?

我有一个结构的以下C声明:

struct vnode {
   char firstchar;
   uint8_t wordlength;

   bool is_red;

   struct vnode *left;
   struct vnode *right;
   struct textelem *texts;
};
Run Code Online (Sandbox Code Playgroud)

所以非常典型的树有一些有效载荷.我试图将其重写为以下ctypes声明:

class VNODE(Structure):
    _fields_ = [("firstchar", c_char),
                ("wordlength", c_ubyte),
                ("is_red", c_bool),
                ("left", POINTER(VNODE)),
                ("right", POINTER(VNODE)),
                ("textelem", POINTER(TEXTELEM))]
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这不起作用,因为当时python编译器还不知道类型VNODE.

所以我把它改写成下面的类:

class VNODE(Structure):
    def __init__(self):
        self._fields_ = [("firstchar", c_char),
                ("wordlength", c_ubyte),
                ("is_red", c_bool),
                ("left", POINTER(VNODE)),
                ("right", POINTER(VNODE)),
                ("textelem", POINTER(TEXTELEM))]
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为现在ctypes无法推断出正确的构造函数(我已经用一个参数编写了它)并且无法推断出正确的getter.所以我得到以下两个错误之一

TypeError: __init__() takes 1 positional argument but 7 were given
AttributeError: 'LP_VNODE' object has no attribute 'firstchar
Run Code Online (Sandbox Code Playgroud)

最后,我提出了以下工作解决方案,但由于现在指针类型未编码,我不确定它是否真的是正确的方法:

class VNODE(Structure): …
Run Code Online (Sandbox Code Playgroud)

python ctypes

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

如何使标题下划线长于标题?

我目前正在尝试使用border-bottom进行自定义下划线.但是,目前下划线一直是我的块元素(整页).

我希望它比我的标题长50px(但文字很灵活,我不知道长度).

如果<span>不在<h2>某种程度上添加另一个标签,我可以这样做吗?我不想添加一个<span>元素<h2>只是为了改变我的设计.

目前的HTML是:

<h1>My title</h1>
Run Code Online (Sandbox Code Playgroud)

CSS:

h1 {
    font-size: 18px;
    color: #b62525;
    border-bottom: 2px solid #c68181;
}
Run Code Online (Sandbox Code Playgroud)

是否可以将边框底部长度调整为文本长度?(例如,行为类似于边框的内联元素,但是像换行符,填充和边距一样)

css

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