小编Sim*_*ini的帖子

C++在迭代时删除列表成员:标准解决方案不起作用?

这是我的问题.我已经阅读了许多关于如何在迭代它时删除列表成员的问题以及我尝试了答案提出的各种解决方案.碰巧他们似乎没有工作.我有这种类的列表:

class Walker {
    public:
        Walker(int); 
        ~Walker(); 

        double *x; 
        double *y; 
        double *z; 
        double weight; 
        int molteplicity; 
};
Run Code Online (Sandbox Code Playgroud)

构造函数和析构函数如下

Walker::Walker(int particle_num) {
    x = new double[particle_num];
    y = new double[particle_num];
    z = new double[particle_num];
}

Walker::~Walker() {
    delete x;
    delete y;
    delete z;
}
Run Code Online (Sandbox Code Playgroud)

现在,列表

list<Walker> population;
Run Code Online (Sandbox Code Playgroud)

被定义为另一个类的成员.现在,如果元素molteplicity为null(通过另一个函数计算),我必须从类中删除成员,这就是我的方法:

for( it = population.begin(); it != population.end(); ) {
        if( it->molteplicity == 0 ) {
            it = population.erase(it);
        } else {
            ++it;
    }
Run Code Online (Sandbox Code Playgroud)

在运行时收到以下错误:

prog(22332)malloc:*对象0x7f838ac03a60的错误:未释放指针被释放*在malloc_error_break中设置断点以调试Abort陷阱:6

你看到错误吗?非常感谢您的帮助!!如果您需要更多代码,请告诉我.

c++

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

Mypy 会忽略包的类型,尽管有 `py.typed`

我正在使用 维护两个存储库poetry,我们称它们repo_main为 和repo_dependency。它们都使用python 3.8并具有mypy( v0.942) 类型提示,并且顾名思义,repo_main依赖于repo_dependency。现在,当我mypy在 上运行时repo_main,类型提示repo_dependency实际上被忽略并被有效地视为Anys。然后我尝试将py.typed文件添加到每个子包中,repo_dependency但没有结果,类型仍然被忽略。的结构repo_dependency看起来有点像这样:

repo_dependency/
  - repo_dependency/
    - package1/
      - __init__.py
      - py.typed
      - stuff.py
    - package2/
      - __init__.py
      - py.typed
      - stuff.py
    - __init__.py
    - py.typed
  - other_non_distributed_things/
Run Code Online (Sandbox Code Playgroud)

知道我可能做错了什么吗?

python types python-3.x mypy python-poetry

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

Python例程从秩缺陷矩阵中提取线性独立行

我正在努力解决以下问题:我有一些非常大的矩阵(比如,至少,2000x2000,可能在将来它们甚至会达到10000x10000),排名非常小(2或3,称之为N),我需要找到一个有效的Python例程来从中提取线性独立行(或列,矩阵是对称的!).我试图采用QR分解的Q矩阵的前N列,但它似乎不能正常工作(这可能是错的吗?).你有更好的主意吗?

非常感谢你!

编辑 这是我用来实现Ami Tavory建议的方法的Python代码:

from numpy import absolute
from numpy.linalg import qr

q = qr(R)[1] #R is my matrix
q = absolute(q)
sums = sum(q,axis=1)

i = 0
while( i < dim ): #dim is the matrix dimension
    if(sums[i] > 1.e-10):
       print "%d is a good index!" % i
    i += 1
Run Code Online (Sandbox Code Playgroud)

这应该告诉我行是否为非零,因此如果R的第i列是线性独立的.

python matrix

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

标签 统计

python ×2

c++ ×1

matrix ×1

mypy ×1

python-3.x ×1

python-poetry ×1

types ×1