小编Kon*_*lph的帖子

附加到容器

我对copyC++中的通用算法有疑问.

要从目标容器ret和源容器进行复制bottom,

copy(bottom.begin(), bottom.end(), back_inserter(ret));
Run Code Online (Sandbox Code Playgroud)

工作,但

copy(bottom.begin(), bottom.end(), ret.end());
Run Code Online (Sandbox Code Playgroud)

才不是.这两个陈述有不同的含义吗?

c++ algorithm

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

如何检查PyObject是否为列表?

我是Python / C API的新手,虽然我可以使用一些基本功能,但我仍在为此而苦苦挣扎。

PyObject* sum_elements(PyObject*, PyObject *o) 
{
    Py_ssize_t n = PyList_Size(o);
    long total = 0;
    if (n < 0)
    {
        return PyLong_FromLong(total);
    }
    PyObject* item;
    for (int i = 0; i < n; i++) 
    {
        item = PyList_GetItem(o, i);
        if (!PyLong_Check(item)) continue;
        total += PyLong_AsLong(item);
    }
    return PyLong_FromLong(total);
}
Run Code Online (Sandbox Code Playgroud)

基本上,这是文档页面上介绍中的功能。它应该接收一个python列表并返回所有元素的总和。如果我通过一个列表,该函数工作正常,如果我通过其他内容,但是出现错误消息

SystemError: c:\_work\5\s\objects\listobject.c:187: bad argument to internal function
Run Code Online (Sandbox Code Playgroud)

这种情况应该由if (n<0)语句处理,如果传递的对象不是列表,则n为-1。

我通过以下方式绑定功能:

static PyMethodDef example_module_methods[] = {
    { "sum_list", (PyCFunction)sum_elements, METH_O, nullptr},
    { nullptr, nullptr, 0, nullptr } …
Run Code Online (Sandbox Code Playgroud)

c++ python python-c-api

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

向后打印字符串,同时删除字符

这会在从开头删除字符的同时打印单词。

word = "word"

length = len(word)
for s in range(0, length):
    print(word[s:])
    s=+1
Run Code Online (Sandbox Code Playgroud)

所以输出是

word
ord
rd
d
Run Code Online (Sandbox Code Playgroud)

如何翻转它,以便在删除字符时向后打印单词?
这样输出将是:

drow
row
ow
w
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

元组可与nullptr一起使用,但不适用于NULL

我有以下代码,其中std :: tuple可与nullptr一起使用,但不适用于NULL。

#include <iostream>
#include <tuple>

int main()
{
tuple<int*> t1, t2;

t1 = std::make_tuple(NULL);
t2 = std::make_tuple(nullptr);
}
Run Code Online (Sandbox Code Playgroud)

当使用C ++ 11编译时,该代码在使用nullptr时有效,但是在使用NULL的情况下会出现以下错误。

In file included from tuple.cpp:2:
/usr/lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/tuple:447:8: error: assigning to 'int *' from incompatible type 'long'
            = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in));
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/tuple:575:36: note: in instantiation of function template specialization 'std::_Tuple_impl<0, int *>::operator=<long>' requested here
          static_cast<_Inherited&>(*this) = std::move(__in);
                                          ^
tuple.cpp:13:8: note: in instantiation of function template specialization 'std::tuple<int *>::operator=<long, void>' requested here
    t1 = std::make_tuple(NULL);
       ^
1 error generated.
Run Code Online (Sandbox Code Playgroud)

在这里,NULL的类型是long …

c++ tuples

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

通过 ssh 在返回的文本中保留 '\n' 换行符

如果我在本地命令行中使用 grep 和 sort 等执行 find 命令,我会得到如下返回的行:

# find ~/logs/ -iname 'status' | xargs grep 'last seen' | sort --field-separator=: -k 4 -g
0:0:line:1
0:0:line:2
0:0:line:3
Run Code Online (Sandbox Code Playgroud)

如果我通过 ssh 执行相同的命令,则返回的文本将不带换行符打印,如下所示:

# VARcmdChk="$(ssh ${VARuser}@${VARserver} "find ~/logs/ -iname 'status' | xargs grep 'last seen' | sort --field-separator=: -k 4 -g")"
# echo ${VARcmdChk}
0:0:line:1 0:0:line:2 0:0:line:3
Run Code Online (Sandbox Code Playgroud)

我试图理解为什么 ssh 正在清理返回的文本,以便将换行符转换为空格。我还没有尝试输出到文件,然后使用 scp 将其拉回来。似乎很浪费,因为我只想在本地查看远程结果。

linux ssh bash opensuse

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

如何从私钥获取椭圆曲线公钥

因此,我需要使用 ECC spec256k1 从相应的 256 位数字中获取公钥。

因此,假设我从任何密码短语中使用 sha256 获取私钥,如下所示:

>>> import hashlib
>>> private_key = hashlib.sha3_256(b"Led Zeppelin - No Quarter").hexdigest()
>>> private_key
'c0b279f18074de51d075b152c8ce78b7bddb284e8cfde19896162abec0a0acce'
Run Code Online (Sandbox Code Playgroud)

如何从该私钥获取公钥?我需要将公钥打印为字符串。

python elliptic-curve public-key-encryption ecdsa

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

使用“{{”运算符通过环境变量隧道数据变量

遵循https://www.tidyverse.org/blog/2020/02/glue-strings-and-tidy-eval/ 中的示例

你如何将变量传递给这个函数?

library(tidyverse)
#> Warning: package 'tidyverse' was built under R version 3.6.2
#> Warning: package 'tidyr' was built under R version 3.6.2

mean_by <- function(data, by, var, prefix = "avg") {
  data %>%
    group_by({{ by }}) %>%
    summarise("{prefix}_{{ var }}" := mean({{ var }}, na.rm = TRUE))
}

mean_by(mtcars, by = cyl, var = mpg, prefix = "avg")
#> # A tibble: 3 x 2
#>     cyl avg_mpg
#>   <dbl>   <dbl>
#> 1     4    26.7
#> …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyverse

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

根据值将数组拆分为多个新数组

我需要将绘制蓝色图形的数组拆分为多个新数组。每当数组中数字的值从负数变为正数或反之亦然时,它应该将数字保存在新数组中。所以结果是多个数组,要么是正数,要么是负数。该代码并不意味着仅仅将 2 个不同数组中的正数和负数组合起来。重要的是(对于这个例子)我最终得到 3 个不同的数组(第一:只有负数,第二:只有正数,第三:再次只有负数)。

我很高兴能得到任何帮助。谢谢!

蓝线图的图像

1

在这种情况下:

Difference (blue line) =  [-20.2 -19.7 -19.2 -18.9 -18.8 -18.8 -18.9 -18.9 -18.9 -18.9 -18.9 -18.9 -19.  -19.1 -19.1 -18.9 -18.5 -18.3 -18.9 -20.8 -24.1 -27.2 -28.1 -24.6  19.1  63.4 104.2 143.8 140.9 120.3  91.7  64.5  46.4  38.2  39.   47.8  63.3  82.9 103.5 122.1 136.4 147.1 155.3 162.5 169.7 177.  184.4 191.8 199.2 207.5 217.7 230.7 246.3 260.2 266.7 260.3 237.5 203.1 164.1 127.3  98.   75.3  56.7  39.9  22.7   5.5 -11.2 -26.5 …
Run Code Online (Sandbox Code Playgroud)

python arrays split vector

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

统计列中连续True的个数,当False时重新开始

我在 pandas df 中使用以下列:

A
True
True
True
False
True
True
Run Code Online (Sandbox Code Playgroud)

我想添加 B 列来计算 A 中连续“True”的数量。我想每次出现“False”时重新启动。期望的输出:

A      B
True   1
True   2
True   3
False  0
True   1
True   2
Run Code Online (Sandbox Code Playgroud)

python pandas

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

如何将稀疏矩阵和稠密向量相乘?

我正在尝试以下操作:

Eigen::SparseMatrix<double> bijection(2 * face_count, 2 * vert_count);
/* initialization */
Eigen::VectorXd toggles(2 * vert_count);
toggles.setOnes();
Eigen::SparseMatrix<double> deformed;
deformed = bijection * toggles;
Run Code Online (Sandbox Code Playgroud)

Eigen 返回一个错误,声称:

 error: static assertion failed: THE_EVAL_EVALTO_FUNCTION_SHOULD_NEVER_BE_CALLED_FOR_DENSE_OBJECTS
  586 |       EIGEN_STATIC_ASSERT((internal::is_same<Dest,void>::value),THE_EVAL_EVALTO_FUNCTION_SHOULD_NEVER_BE_CALLED_FOR_DENSE_OBJECTS);
Run Code Online (Sandbox Code Playgroud)

根据本征文件

允许稀疏矩阵和向量积。我究竟做错了什么?

c++ math matrix eigen

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