小编use*_*876的帖子

如何在Python中实现树?Python中是否有类似Java的内置数据结构?

我正在尝试构建一个通用树.Python中是否有内置的数据结构来实现树?

python tree data-structures python-3.x

164
推荐指数
13
解决办法
31万
查看次数

从用户代理或Javascript检测64位或32位Windows?

我想提供正确的下载版本.我的版本是:

  • 32位Windows
  • 64位Windows
  • Linux的

使用User Agent字段检测Linux很容易; 但是有可能可靠地判断Windows是32位还是64位?

用户可能正在使用奇怪的浏览器 - IE和Firefox很常见,我们可能在某处有Opera用户; 也许是Chrome用户.我知道64位Windows 7附带32位和64位版本的IE,我想将它们发送到我下载的64位版本.

(编辑补充:我知道我应该提供所有选项,我会.但是人们不会阅读选项.所以我希望默认提供正确的下载,以提高可用性.当然,虽然这很有帮助如果我做对了,如果我弄错的话,这是非常无益的.从目前为止的答案来看,这看起来并不是一种可行的方法.

javascript 64-bit user-agent operating-system

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

如何在Linux中命名一个线程?

我有一个用C/C++编写的多线程Linux应用程序.我为我的线程选择了名字.为了帮助调试,我希望这些名称在GDB,"top"等中可见.这是可能的,如果是这样,如何?

(有很多理由知道线程名称.现在我想知道哪个线程占用了50%的CPU(由'top'报告).而且在调试时我经常需要切换到不同的线程 - 目前我必须做" thread apply all bt"然后查看回溯输出页面以找到正确的线程).

视窗解决方案就在这里 ; 什么是Linux?

c c++ linux multithreading

39
推荐指数
2
解决办法
3万
查看次数

将图像旋转90度的算法?(没有额外的记忆)

在嵌入式C应用程序中,我有一个大图像,我想旋转90度.目前我使用众所周知的简单算法来做到这一点.但是,这个算法要求我制作另一个图像副本.我想避免为副本分配内存,我宁愿在原地旋转它.由于图像不是方形,这很棘手.有谁知道合适的算法?

编辑添加澄清,因为人们问:

我以通常的格式存储图像:

// Images are 16 bpp
struct Image {
    int width;
    int height;
    uint16_t * data;
};

uint16_t getPixel(Image *img, int x, int y)
{
    return img->data[y * img->width + x];
}
Run Code Online (Sandbox Code Playgroud)

我希望移动data数组的内容,然后交换widthheight成员变量.因此,如果我从9x20像素图像开始,然后旋转它,我将最终得到一个20x9像素的图像.这改变了图像的步幅,这使算法复杂化很多.

c embedded image-processing rotation

38
推荐指数
4
解决办法
3万
查看次数

如何恢复CVS的重大变化?

我的一位同事完全搞砸了我们主CVS存储库中目录的内容.我需要将整个模块恢复到去年年底的状态.请问CVS命令是什么?

他添加并删除了数百个文件,因此简单的"复制旧签出和提交文件"是不够的.

我有RTFM和STFW,我试过这个:

cvs co modulename  # Note no -P option
cvs up -jHEAD -jMAIN:2008-12-30 modulename
Run Code Online (Sandbox Code Playgroud)

但这不起作用 - 他创建的新文件被删除,但旧的文件和目录不会被复活.(我没有承诺).

我可以为此编写一个shell脚本,但是这个功能肯定已经在CVS了吗?

更新:一些澄清:

  • 我可以在特定日期获得模块的本地结账.问题是如何将其重新纳入CVS.

  • 我确实有备份,但使用像CVS这样的修订控制系统的要点是它应该很容易获得任何历史状态.下次发生这样的事情时,我可能没有足够的幸运能够备份(例如备份是每天,所以我可能会失去一天的工作).

  • 我知道CVS已经老了,我们应该转向更新的东西.但是在拥有大量基于CVS的工具(结账和构建脚本,夜间构建服务器等)的大型团队中,此类迁移的时间成本相当可观.(评估,更新脚本,测试,迁移,培训,丢​​失开发人员时间,并行维护两个系统,因为旧分支仍然需要CVS).因此,这必须由管理层规划和安排.

更新#2:我将在此开始赏金. 要获得赏金资格,您必须解释如何使用普通的CVS命令恢复,而不是使用hacky shell脚本.

更新#3:服务器是CVS 1.12.13.通过pserver访问.我可以在Linux PC上使用相同版本的CVS,或在Windows上使用CVSNT 2.0.51d客户端.

cvs version-control revert

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

Django的Byte Ranges

Django中是否存在HTTP字节范围的现有实现?即当客户端发送Range:标头时,我希望我的Django应用程序接受它并使用HTTP"206 Partial Content"响应进行回复.

我可以从头开始写东西,但肯定有人已经这样做了吗?

这有很多部分:

  1. 解析和完整性检查Range标头
  2. 实际上生成范围
  3. 支持在响应中返回单个范围
  4. 支持在单个响应中返回多个范围,适当地进行MIME编码

当然至少(1)和(4)在哪里有图书馆支持?

django http http-headers

22
推荐指数
2
解决办法
4579
查看次数

引用基类时是否需要命名空间

我有这样的代码:

namespace N {
   class B {
     public:
       virtual void doStuff(B *) = 0;
    };
 }

 // not in a namespace
 class Derived : public N::B {
   public:
       void doStuff(B *); // Should this be N::B, or is B ok?
 };
Run Code Online (Sandbox Code Playgroud)

我是否需要名称空间限定符,其中Derived引用它的基类?GCC和MSVC对编写的代码很满意,但是除非我把命名空间放进去,否则另一个编译器会抱怨.C++标准说的是什么?

c++ inheritance namespaces language-lawyer name-lookup

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

如何在Python中调试MemoryError?跟踪内存使用的工具?

我有一个Python程序,当我提供一个大文件时会死于MemoryError.有没有什么工具可以用来弄清楚使用内存的是什么?

这个程序在较小的输入文件上运行良好.该程序显然需要一些可扩展性改进; 我只想弄清楚在哪里."优化之前的基准",正如一位聪明人曾经说过的那样.

(只是为了预防不可避免的"添加更多RAM"答案:这是在一个带有4GB RAM的32位WinXP盒子上运行,因此Python可以访问2GB的可用内存.从技术上讲,添加更多内存是不可能的.重新安装我的PC 64 -bit Windows不实用.)

编辑:哎呀,这是推荐哪个Python内存分析器的副本

python profiling memory-management out-of-memory

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

HTTP:当Range不受支持时,我应该如何响应"Range:bytes ="?

Range: bytes=278528-如果Range不支持,带有标题字段的GET请求的正确响应是什么?

阅读HTTP标头定义(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)我认为我至少应该设置:Accept-Ranges: none,但它明确指出

客户端可以生成字节范围请求,而不会收到所涉及资源的此标头.

因此,如果客户请求范围,我应该:

webserver http download range http-headers

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

对于malloc()失败,是否存在等效的set_new_handler()?

在C++中,您可以安排在new失败时调用函数.有没有办法在malloc失败时调用一个函数?假设malloc从第三方库中调用,我不想更改.

我不认为有一个可移植的答案,所以我很乐意接受特定于平台的答案.我在某些平台上使用Linux + uclibc,在其他平台上使用Linux + glibc.我打算用来setrlimit限制malloc可以返回的内存量.

c c++ malloc glibc uclibc

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

解析C++预处理器#if语句

我有一个带条件编译的C/C++源文件.在我将它发送给客户之前,我想删除大多数#if语句,这样我的客户就不必担心将正确的-D选项传递给编译器.

我已经在Python中实现并使用它,但它只能正确处理#ifdef和#ifndef语句.我需要添加对#if语句的支持,但#if的语法要复杂得多.(例如,您可以使用&&,||,!,括号,关系运算符,算术等).

是否有任何现有的开源代码来解析和评估#if语句?(最好是在Python中).

我所知道的唯一实现是GCC,这对于这项任务来说太复杂了.

c c++ python parsing c-preprocessor

4
推荐指数
3
解决办法
3076
查看次数

Python 3:获取TypeError:切片必须是整数...但我相信它们

我正在尝试编写一个名为"middle"的函数,它取奇数的中间3位数,或偶数的中间4位数.如果数字小于5位,则只返回整数.这是我的工作:

def middle(x):
    mystring=str(x)
    length=len(mystring)
    if len(mystring)<=5:
        return(x)
    elif len(mystring)%2==0:
        return (mystring[((length/2)-1):((length/2)+3)])
    else:
        return (mystring[(length//2):((length//2)+3)])
middle (1234567890)
Run Code Online (Sandbox Code Playgroud)

我一直得到"类型错误:切片索引必须是整数或没有或有an_index_method",我不明白.

python integer slice python-3.x

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

如何使用ifdef检测是否支持Windows DWORD_PTR类型?

Windows API中有一些新的整数类型支持Win64.他们并不总是受到支持; 例如,它们不存在于MSVC6中.

如何编写#if条件来检测这些类型是否受支持<windows.h>

(我的代码需要在许多不同版本的Microsoft Visual C++下编译,包括MSVC6.所以我需要提供我自己的这些类型的定义,#if并在新的编译器中禁用它们).

(对于搜索者,完整的类型列表是:DWORD_PTR,INT_PTR,LONG_PTR,UINT_PTR,ULONG_PTR)

c c++ windows win64 visual-c++

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