小编cry*_*key的帖子

`:=` 用于数据表中的多个同时赋值不尊重更新值

:=用于数据表中的多个同时分配不尊重更新值。x 列递增,然后我打算将 x 的更新值分配给 y。为什么价值不等于预期?

> z = data.table(x = 1:5, y= 1:5)
> z[, `:=` (x = x + 1, y = x)]
> # Actual
> z
   x y
1: 2 1
2: 3 2
3: 4 3
4: 5 4
5: 6 5
> # Expected
> z
   x y
1: 2 2
2: 3 3
3: 4 4
4: 5 5
5: 6 6
Run Code Online (Sandbox Code Playgroud)

r data.table

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

如果非原始数据类型的 std::sort 包含比较器的重复项,则它是否始终返回相同的排序数组

假设我有一个非原始数据类型,根据比较器有重复项,并且我尝试使用...对其进行排序std::sort...它每次都会给出相同的排序数组吗(如果我们在每个结果中比较排序数组,它会相同吗?)。我知道它不稳定(它可能会改变相等元素的顺序),但是相同输入数组的结果是否保证是确定性的(可靠且可重现)?

struct Data {
  std::string str;
  int data;
};

struct {
        bool operator()(Data a, Data b) const { return a.data > b.data; }
} customLess;

int main() {
    std::vector v = {
       {"Rahul", 100},
       {"Sachin", 200},
       {"Saurav", 200},
       {"Rohit", 300},
       // .....

    };

    for(uint k = 0; k < 1000; k++) {
       auto v2 = v;
       std::sort(v2.begin(), v2.end(), customLess);
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ arrays sorting algorithm vector

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

标签 统计

algorithm ×1

arrays ×1

c++ ×1

data.table ×1

r ×1

sorting ×1

vector ×1