小编Yot*_*tam的帖子

为什么设置迭代器指针会导致分段错误?

最重要的是,为什么迭代器会导致分段错误?注意,我在这里键入代码的相关部分而不是复制粘贴.如果编译中有错误,请注意,但不要将其视为我的问题的来源.

在我的代码中,我有一个珠子盒子的地图:
map<vector<int>,set<shared_ptr<bead> > > > nextBoxes;

除此之外,每个珠子还具有一个vec pos构件,该构件又具有:

  class vec{
  double x;
  double y;
  double z;
  .
  .
  .
  vector<int> getBox();
  .
  .
  .
}

vector<int> vec::getBox(){
  vector<int> out(3,0);
  extern double boxSize;
  out[0] = x/boxSize;
  out[1] = y/boxSize;
  out[2] = z/boxSize;
  return out;
}
Run Code Online (Sandbox Code Playgroud)

我用一种非常简单的方法将珠子穿过盒子

extern vectrot<shared_ptr<bead> > beads;
for (int i = 0; i < beads.size(); i++){
  vector<int> t = beads[i]->pos.getBox();
  nextBoxes[t].insert(beads[i]);
}
Run Code Online (Sandbox Code Playgroud)

在代码的其他地方,pos珠子的值可能会改变,我会在本地更新盒子.

我使用以下循环来浏览盒子和珠子:

map<vector<int>,set<shared_ptr<bead> > >::iterator mit = nextBoxes.begin();
extarn …
Run Code Online (Sandbox Code Playgroud)

c++ iterator set segmentation-fault

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

使用python直接通过url从imgur下载文件

有时,文件扩展名不提供指向imgur的链接.例如:http://imgur.com/rqCqA.我想下载文件并给它一个已知名称或在更大的代码中获取它的名字.问题是我不知道文件类型,所以我不知道给它的扩展名.

我怎么能在python或bash中实现这一点?

python bash imgur

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

c ++如何使用我的函数来提高效率?

我正在运行一个模拟,需要一些时间来运行,我想改进它.根据我的理解,将值传递给函数意味着复制的值很慢.有没有办法在一个专用文件中包含一些函数,我不需要复制值?

我不介意做"错误的编程"(全局变量,公共访问等)以获得速度.

谢谢

编辑:当我开始我的项目时,我测试了几个循环.我计算了这种循环的开始和结束之间的处理器风格:

int i = 0;
while (i < 10000000){
  i = doStuff(i); //or doStuff();
}

int doStuff(i){
  return i++;
}

int doStuff(){
  return i++;
}
Run Code Online (Sandbox Code Playgroud)

我很确定doStuff()案例的速度要快10倍.我已将我以前的代码更改为全局变量和直接访问("错误的编程"),它显着改善了我的运行时间.我试图使用引用,但我有一些固有的问题阻止我这样做(我不记得它是什么).无论如何,我现在正在玩gprof.

c++ performance

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

为什么返回的函数数组是输入列表的两倍?

我在python中创建了一个简单的函数:

def func(a,x):
  return a+x*2
Run Code Online (Sandbox Code Playgroud)

然后我称之为

x = [log(1),log(2),log(4),log(5),log(8)]
#Import y data from a file
free= curve_fit(func,np.array(x),np.array(y))[0][0]
yline = func(free,x)
Run Code Online (Sandbox Code Playgroud)

结果yline是两倍长,x并且每个元素在那里两次.

为什么会这样?

注意: 我正在导入numpy但不是scipy或curve_fit

python numpy scipy

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

将值分配给python结果中的字典,并在错误的键中使用值

我正在通过Project Euler编程,我遇到了一个奇怪的问题.我想找到从两个自然数生成(自然)数字的所有可能方法.我创建了一个简单的循环,我注意到了奇怪的结果.例如,1从3和1生成.一些调查结果如下:

#Importing stuff I often use in my solutions/tests
from math import sqrt, log, floor, pow, fabs, factorial
from sets import Set
from random import randint
from itertools import permutations
import sys


dub = dict()

c = 0 #Counting the number of elements in dub[18], use to track changes
for i in range (1,10):
    if 18 in dub: #setting c = len(dub[18])
        c = len(dub[18])
    for j in range (i+1,10):
        pair = [[i,j]]
        v = i+j
        if …
Run Code Online (Sandbox Code Playgroud)

python dictionary

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

FORTRAN中从``real``到``double precision``的转换是否会受到编译器的影响?

我有一个FORTRAN代码,我需要在服务器上运行.我注意到两台机器的结果有点不同.调查一下,我了解到差异从一个返回real值的函数变为一个double precision变量.在locale机器上我使用旧编译器(gnu f95 4.1.2),在远程机器上我使用ifort.

compiler-construction fortran casting intel-fortran

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