小编Rei*_*ica的帖子

如何在C++中解析tar文件

我想要做的是下载一个包含多个目录的.tar文件,每个目录包含2个文件.问题是我找不到一种方法来读取tar文件而不实际提取文件(使用tar).

完美的解决方案将是这样的:

#include <easytar>

Tarfile tar("somefile.tar");
std::string currentFile, currentFileName;
for(int i=0; i<tar.size(); i++){
  file = tar.getFileText(i);
  currentFileName = tar.getFileName(i);
  // do stuff with it
}
Run Code Online (Sandbox Code Playgroud)

我可能不得不自己写这个,但任何想法都会受到赞赏..

c++ tar

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

Python的reduce()短路吗?

如果我做:

result = reduce(operator.and_, [False] * 1000)
Run Code Online (Sandbox Code Playgroud)

第一次结果后它会停止吗?(自False & anything == False)

同理:

result = reduce(operator.or_, [True] * 1000)
Run Code Online (Sandbox Code Playgroud)

python

13
推荐指数
2
解决办法
1911
查看次数

为什么无序的关联容器没有实现小于运算符?

无序关联容器unordered_set,unordered_map等没有一个小于运算符operator<,既不是成员函数也不是一个免费的功能.为什么?less两者都没有专业化.SGI STL的hash_*类型也缺乏此功能.

如果我们排除底层类型的概念,所有容器类型都满足常规类型的要求,例如Stepanov&McJones 的编程元素.唯一的例外是缺乏的无序关联类型operator<.


我无法想出一个与给定的相等定义一致的运算符的有效实现,那么效率可能是什么原因呢?另一方面,operator==对于无序关联容器,在某些情况下需要重新散列一个容器的每个元素并在另一个容器中查找 - O(N)平均值,但最坏情况为O(N²).

c++ stl std c++11

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

如何让automake不那么难看?

我最近学会了如何使用automake,我有点恼火,我的编译命令来自一堆:

g++ -O2 -Wall -c fileName.cpp
Run Code Online (Sandbox Code Playgroud)

对于一堆:

depbase=`echo src/Unit.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    g++ -DHAVE_CONFIG_H -I. -I./src     -g -O2 -MT src/Unit.o -MD -MP -MF $depbase.Tpo -c -o src/Unit.o src/Unit.cpp &&\
    mv -f $depbase.Tpo $depbase.Po
Run Code Online (Sandbox Code Playgroud)

有没有办法清理它?我通常可以轻松地选择警告信息,但现在要阅读的文字墙是3倍大且更奇怪.

我知道我的旗帜是什么,因此只需要为每个文件说"编译xxx.cpp"就完美了.

automake makefile gnu-make

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

联合Postgres中的GeomUnion等SQL Server表中的所有几何体

只是为了澄清前面:我说的是联合几何,而不是SQL关键字UNION.

我正在尝试将Postgres中的一些空间数据与PostGIS一起移动到SQL Server 2008.直到我看到这样的语句之后才好了:

SELECT GeomUnion(the_geom) FROM some_table
Run Code Online (Sandbox Code Playgroud)

这个联合该列中的所有几何体并将其作为一个结果返回(类似于COUNT工作方式).据我所知,SQL Server只具有将STUnion一个几何与另一个几何结合的功能.有没有办法做类似于Postgres的方式?

如果它有帮助,该STUnion功能的工作方式如下:

SELECT first_geometry_column.STUnion(second_geometry_column) FROM some_table
Run Code Online (Sandbox Code Playgroud)

sql spatial sql-server-2008

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

为什么SQL Server中的空间搜索速度比PostGIS慢?

我正在努力将一些空间搜索功能从Postgres与PostGIS一起移动到SQL Server,我看到一些相当糟糕的性能,即使是索引也是如此.

我的数据大约有一百万个点,我想找出哪些点在给定的形状内,所以查询看起来像这样:

DECLARE @Shape GEOMETRY = ...
SELECT * FROM PointsTable WHERE Point.STWithin(@Shape) = 1
Run Code Online (Sandbox Code Playgroud)

如果我选择一个相当小的形状,我有时可以得到亚秒,但如果我的形状相当大(有时它们),我可以得到超过5分钟的时间.如果我在Postgres中运行相同的搜索,它们总是在一秒钟之内(事实上,几乎所有搜索都在200毫秒之内).

我在我的索引上尝试了几种不同的网格大小(全高,全中,全低),每个对象不同的单元格(16,64,256),无论我做什么,时间都保持不变.我想尝试更多组合,但我甚至不知道要走哪条路.每个对象更多的细胞?减?一些奇怪的网格尺寸组合?

我查看了我的查询计划,他们总是使用索引,它根本就没有帮助.我甚至试过没有索引,并没有更糟糕.

有没有人可以给出任何建议?我能找到的一切都表明"我们不能给你任何关于索引的建议,只是尝试一切,也许一个会工作",但是用10分钟创建一个索引,盲目地做这个是浪费大量时间.

编辑:我也在微软论坛上发布了这个.以下是他们在那里要求的一些信息:

我能得到的最好的工作指数就是这个:

CREATE SPATIAL INDEX MapTesting_Location_Medium_Medium_Medium_Medium_16_NDX
    ON MapTesting (Location)
 USING GEOMETRY_GRID
  WITH (
    BOUNDING_BOX = ( -- The extent of our data, data is clustered in cities, but this is about as small as the index can be without missing thousands of points
        XMIN = -12135832,
        YMIN = 4433884,
        XMAX = -11296439,
        YMAX = 5443645),
    GRIDS = ( …
Run Code Online (Sandbox Code Playgroud)

sql-server geospatial sql-server-2008 spatial-index

11
推荐指数
2
解决办法
5202
查看次数

向Python 2"回归"Python 3的"范围"是一个坏主意吗?

我的一个课程要求在Python中完成作业,作为练习,我一直在确保我的程序在Python 2和Python 3中都能正常工作,使用如下脚本:

#!/bin/bash
# Run some PyUnit tests
python2 test.py
python3 test.py
Run Code Online (Sandbox Code Playgroud)

我一直在做的一件事是range使用这段代码在两个版本中使工作相同:

import sys

# Backport Python 3's range to Python 2 so that this program will run
# identically in both versions.
if sys.version_info < (3, 0):
    range = xrange
Run Code Online (Sandbox Code Playgroud)

这是一个坏主意吗?

编辑:

这样做的原因是,xrangerange工作方式不同在Python 2和Python 3,我希望我的代码做同样的事情在这两个.我可以反过来做,但让Python 3像Python 2一样工作似乎很愚蠢,因为Python 3是"未来".

这是一个为什么只是使用range不够好的例子:

for i in range(1000000000):
    do_something_with(i)
Run Code Online (Sandbox Code Playgroud)

我显然没有使用该列表,但在Python 2中,这将使用疯狂的内存量.

python python-2.x python-3.x

11
推荐指数
2
解决办法
929
查看次数

我应该何时在ActiveMQ中使用JDBC持久性适配器?

阅读ActiveMQ文档(我们使用的是5.3版本),我找到了一个关于在ActiveMQ中使用JDBC持久性适配器的可能性的部分.

有什么好处?它是否提供了性能或可靠性的任何增益?我应该什么时候使用它?

java persistence activemq-classic jdbc

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

服务器端自动缩小?

有没有办法自动缩小静态内容,然后自动从缓存中提供它?类似于有mod_compress/mod_deflate工作吗?优选地,我可以将其与压缩结合使用(因为压缩具有更显着的益处).

我的偏好是适用于lighttpd的东西但是我找不到任何东西,所以任何可以做到这一点的网络服务器都会很有趣.

apache iis lighttpd nginx minify

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

Perl标识符中允许哪些字符?

我正在做正则表达式作业,其中一个问题是:

在线使用语言参考手册确定Java,Python,Perl和C的整数数字常量和标识符的正则表达式.

我在正则表达式上不需要帮助,我只是不知道Perl中的标识符是什么样的.我发现页面描述了C,PythonJava的有效标识符,但我找不到任何关于Perl的内容.

编辑:澄清一下,找到文档很容易(比如谷歌搜索python标识符).我不参加"谷歌搜索"课程.

unicode perl identifier

10
推荐指数
3
解决办法
4959
查看次数