问题列表 - 第40690页

数组索引循环变量在C,C++中重置为零

我已经声明了一个长度为N的数组(假设).现在,我使用循环为这个数组的元素赋值(循环变量用作数组的索引).代码如下:

int main()
{
  int arr[4], j;
  for(j=0; j<10; j++)
  {     
    printf("%d\n", j);
    arr[j] = 0;
    sleep(1);
    printf("%d\n\n", j);
  } 
return 0;
}
Run Code Online (Sandbox Code Playgroud)

我期望输出为0 1 2 .. 9.但实际发生的是,当赋值arr [N + 2] = 0(arr [6] = 0,在这种情况下)执行时,j被重置为0循环.这里到底发生了什么?我错过了什么吗?

c c++ arrays

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

是否可以删除非新对象?

我有一个对象,其中包含指向其他对象的指针向量,如下所示:

class Object {
    ...
    vector<Object*> objlist;
    ...
};
Run Code Online (Sandbox Code Playgroud)

现在,对象将以这两种方式添加到列表中:

Object obj;
obj.objlist.push_back(new Object);
Run Code Online (Sandbox Code Playgroud)

Object name;
Object* anon = &name;
obj.objlist.push_back(anon);
Run Code Online (Sandbox Code Playgroud)

如果做一个简单的析构函数

~Object {
    for (int i = 0; i < objlist.size(); i++) {
        delete objlist[i];
        objlist[i] = NULL;
    }
}
Run Code Online (Sandbox Code Playgroud)

在尝试删除未使用new创建的对象时会不会产生任何不良后果?

c++ destructor memory-management new-operator

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

如何加速DbSet.Add()?

我必须从CSV文件导入大约30k行到我的SQL数据库,这可能需要20分钟.

使用分析器进行故障排除向我显示DbSet.Add占用的时间最多,但为什么呢?

我有这些Entity Framework Code-First类:

public class Article
{
    // About 20 properties, each property doesn't store excessive amounts of data
}

public class Database : DbContext
{
    public DbSet<Article> Articles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

对于我的for循环中的每个项目,我做:

db.Articles.Add(article);
Run Code Online (Sandbox Code Playgroud)

在for循环之外我做:

db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

它与我的本地SQLExpress服务器连接,但我想在SaveChanges被调用之前没有任何东西,所以我猜服务器不会出现问题....

c# performance entity-framework sql-server-2008

30
推荐指数
4
解决办法
9550
查看次数

将数据从ctypes数组转换为numpy

我正在使用Python(via ctypes)包装的C库来运行一系列计算.在运行的不同阶段,我想将数据导入Python,特别是numpy数组.

我正在使用的包装为数组数据做了两种不同类型的返回(我特别感兴趣):

  • ctypes数组:当我这样做时type(x)(其中x是ctypes数组,我得到了一个<class 'module_name.wrapper_class_name.c_double_Array_12000'>回报.我知道这些数据是文档中内部数据的副本,我可以numpy轻松地将它变成一个数组:

    >>> np.ctypeslib.as_array(x)
    
    Run Code Online (Sandbox Code Playgroud)

这将返回numpy数据的一维数组.

  • ctype指向数据的指针:在这种情况下,从库的文档中,我知道我得到一个指向存储的数据并直接用于库.乳清我做type(y)(y是指针)我得到了<class 'module_name.wrapper_class_name.LP_c_double'>.在这种情况下,我仍然可以索引数据y[0][2],但我只能通过一个超级尴尬的方式将它变成numpy:

    >>> np.frombuffer(np.core.multiarray.int_asbuffer(
        ctypes.addressof(y.contents), array_length*np.dtype(float).itemsize))
    
    Run Code Online (Sandbox Code Playgroud)

我在Travis Oliphant的旧numpy邮件列表帖子中找到了这个,但在numpy文档中没有.如果不是这种方法,我尝试如上,我得到以下内容:

>>> np.ctypeslib.as_array(y)
...
...  BUNCH OF STACK INFORMATION
...
AttributeError: 'LP_c_double' object has no attribute '__array_interface__'
Run Code Online (Sandbox Code Playgroud)

这种np.frombuffer方法是最佳还是唯一的方法?我对其他建议numpy持开放态度,但我仍然希望使用,因为我有很多其他后处理代码,它依赖于numpy我想要对这些数据使用的功能.

python ctypes numpy

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

用于模糊的OpenGL ES 2.0片段着色器速度慢且质量低

我正在尝试为iPad编写模糊着色器.我有它的工作,但我对结果不是很满意.我的帧速率非常不稳定,当模糊量很高时,模糊看起来像废话.

关于如何改善事物的任何想法?

一些示例输出:

替代文字

uniform sampler2D texture;
varying mediump vec2 fragTexCoord;
varying mediump vec3 eyespaceNormal;

varying highp float blurAmount;

void main(void)
{
    highp vec2 gaussFilter[7];
    gaussFilter[0] = vec2(-3.0, 0.015625);
    gaussFilter[1] = vec2(-2.0, 0.09375);
    gaussFilter[2] = vec2(-1.0, 0.234375);
    gaussFilter[3] = vec2(0.0, 0.3125);
    gaussFilter[4] = vec2(1.0, 0.234375);
    gaussFilter[5] = vec2(2.0, 0.09375);
    gaussFilter[6] = vec2(3.0, 0.015625);

    highp float blurSize = blurAmount * 1.0;

    /////////////////////////////////////////////////
    // 7x1 gaussian blur fragment shader
    /////////////////////////////////////////////////

    highp vec4 color = vec4(0,0,0,1);

    for( int i = 0; i < 7; …
Run Code Online (Sandbox Code Playgroud)

iphone opengl-es ipad ios opengl-es-2.0

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

使用变量名称定义函数?

我需要使用短代码为Wordpress创建一个列系统,这不是问题,但我试图用更少的代码来实现它.

我有一个包含所需数据的数组,我遍历它,创建一个唯一命名的函数并将其设置为shortcode-function.第三步是个谜.如何从变量创建函数.

这是一个例子,它应该如何完成:

$data[] = "first";
$data[] = "second";
foreach($data as $key => $value) {
    function $value($atts,$content) {
        return '<div class="'.$value.'">'.$content.'</div>';
    }
    add_shortcode($value,$value);
}
Run Code Online (Sandbox Code Playgroud)

但是,似乎不可能让它在PHP中像那样工作.有没有办法使这项工作,因为我不想写所有(相同)功能分开.我可以使短代码类似,[col first]text[/col]但客户希望每个都有不同的名称.

php wordpress function

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

是否有任何法律规定使用缺乏许可证的代码?

我最近在一些程序中发现了一些代码的使用,我被要求完成.它取自的代码没有许可证.这让我觉得应该有一些规则/法律来管理这种工作.我不知道他们会是什么,所以这个问题.

对于我自己的个人玩具,我总是至少要留下一个详细说明来自哪里的评论.至少看起来像是体面的事情.

licensing

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

更好的跨平台开发选择:Java还是C#?

我是一名拥有超过25年经验的Unix开发人员.我做了很多跨平台工作,最近在MacOS上开发代码并使用autoconf将其重定向到Linux,并在交叉编译模式下使用mingw重定向到Windows.这在很大程度上给出了良好的结果.但是,我有兴趣转向类型安全的语言.此外,我的用户更愿意为他们提供基于GUI的应用程序而不是命令行应用程序.

我的大多数用户都在Windows上,但很多重要用户都在Linux上.我的所有用户都不在MacOS上,但那是我首选的环境.(我应该切换到Linux或Windows,但我真的很喜欢Apple Mail.)

大约三年来,我一直在寻求将我的开发工作从C++转移到Java或C#.C++运行得更快,我们正在进行非常数据密集的操作.一个典型的程序将处理500GB到1TB,需要3-5个小时.在5小时内完成的程序与在9小时内完成的程序之间的差异是完成启动它的那一天的程序与第二天结束的程序之间的差异.另一方面,我越来越多地编写多线程程序,并且在Java和C#中,treading模型更加清晰.

所以我陷入了僵局.我找到了一个速度比较,表明我不应该因为速度而选择Java vs. C#.所以我试图考虑其他问题:

  1. 长期承诺.没有人知道Java会发生什么,但只要微软是C#,C#就和我们在一起.
  2. 平台上的可用性和一致性.Java在各地几乎都是一样的.我不知道微软和Mono的C#有多相似.
  3. 易于开发.我已经习惯了在EMACS中开发,但我一直认为我应该因为代码分解而转向Eclipse.(我希望EMACS具有不错的代码保理,但它没有.)Visual Studio非常好,但只能在Windows上运行.Mono开发环境看起来很可悲,但它可能会变得更好.

所以我在寻找其他人的意见.

c# java comparison development-environment

14
推荐指数
2
解决办法
8708
查看次数

找出网站是否是博客的算法?

这是一个创意之一:-)

我将定期收到数百个新网址的列表,并希望了解它们是否链接到博客 - 准确度在80%到95%之间就足够了.

显然我需要分析页面的HTML - 但你究竟会如何处理这个问题(例如元标记,结构分析,模式匹配,机器学习......)?

algorithm blogs web

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

那么版本的"标签"和新功能的"分支"?

我对分布式版本控制系统有点新意,所以我正在阅读Mercurial手册,我所理解的是标签功能可用于标记版本号,例如标记为v1.0和另一个v1.1等.

至于分支,它们将用于添加新功能而不会打扰其他开发人员,然后在一切正常后将其与默认分支合并.

是对的吗?

请指教.谢谢.

git version-control mercurial github bitbucket

4
推荐指数
2
解决办法
460
查看次数