小编mat*_*ath的帖子

查找向量的max_element,其中使用成员来确定其是否为最大值

考虑具有成员x和std :: vector <A>的A类.现在,在向量内的所有元素中搜索最大x是一项常见任务.显然,如果x上有迭代器,我只能使用std :: max_element.但我必须自己写一个,或者我只是做一个简单的for循环.

maxSoFar = -std::numeric_limits< double >::max();
for( std::vector< A >::const_iterator cit = as.begin(); cit != as.end(); ++cit )
{
  if( cit->x > maxSoFar )
    maxSoFar = cit->x;
}
Run Code Online (Sandbox Code Playgroud)

但它太乏味了,我太懒了..有更好的选择吗?

c++ stl max

6
推荐指数
2
解决办法
9954
查看次数

如何在版本控制系统中找到最匹配的修订版?

我很久以前从subversion存储库(subversion)下载了一个文件.所以这不是来自该存储库的结账.我修改了这个文件,但是在下载这个文件时我不记得修改了.

该项目进化了,现在我想将这些文件合并到文件中(两年后).这个文件是一个巨大的脚本.

因此,我的基本尝试是从存储库中找到最佳匹配的修订版,以便查看我已更改的内容,然后最终合并这两个文件.为了这个目的,我会检查每个修订,我认为它可能是这个修订,直到现在,做一个差异,并计数行.我认为,最小的差异将给我最好的匹配修订.

还有其他想法吗?

svn version-control diff

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

encfs中的文件名长度限制是否有解决方法?

我将Dropbox与encfs一起使用。问题是我的主机在文件名中仅支持256个字符,因此encfs仅支持〜190。有没有一种方法可以避免这种情况,而无需重新安装主机文件系统并增加其限制?

我主要在ubuntu 11.10中使用ext4作为文件系统,但同时将hfs作为文件系统的Mac OSX 10.6和Windows对我而言并不那么重要。

干杯,布鲁贝尔。

encryption long-filenames

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

如何区分重新包装的文本?

编辑文档时,我总是坚持最大80或150个字符的某个行宽,这取决于我写的内容(代码,文本等).如果我只改变一点,整个段落将会移动,因此多行现在处于不同的顺序,以便最佳地适合给定的行宽.我如何区分它以查看实际的真实变化而不是重新封装的工件?

例如,textwidth = 30: 在此输入图像描述

实际的变化相当小:

  • 第9行插入:"现在我改变一点"
  • 第15行插入:"在这里填写一些东西并用更多的线条写出全新的东西."
  • 第18行更改:s/Duis/TYPO /

我在这里使用(g)vimdiff的事实无论如何,如果其他软件可以实现所需的差异.

当然,软件设计为在文本到达窗口边框时自动换行,因此我也尝试在段落末尾使用换行符.这个不好的原因是,自动差异是基于行的,对于段落中的小变化我得到整行,意味着整个段落为差异更新:(.

diff word-wrap

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

我应该关闭用java.nio.file.Files.newInputStream创建的Streams吗?

在流教程中,关于从中获取的关闭流没有任何说法Files.newInputStream( path ).只有一些模糊不清:

返回的流是否可异步关闭和/或可中断是高度特定于文件系统提供程序的,因此未指定.

什么是"异步"在这种情况下?如果我显式关闭流或另一个线程异步关闭流?

java stream nio2

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

枚举生成的类是 Final 还是 Not?

当我指定这样的枚举时:

enum Color { RED }
Run Code Online (Sandbox Code Playgroud)

生成的代码javap -p Color如下所示:

final class Color extends java.lang.Enum<Color> {
  public static final Color RED;
  private static final Color[] $VALUES;
  public static Color[] values();
  public static Color valueOf(java.lang.String);
  private Color();
  private static Color[] $values();
  static {};
}
Run Code Online (Sandbox Code Playgroud)

但是,当我添加自定义扩展(例如显式构造函数)时,例如:

enum Color {
  RED,

  Color() {}
}
Run Code Online (Sandbox Code Playgroud)

我明白了:

class Color extends java.lang.Enum<Color> {
  public static final Color RED;
  public static final Color Color;
  private static final Color[] $VALUES;
  public static Color[] values();
  public static Color …
Run Code Online (Sandbox Code Playgroud)

java enums extends code-generation final

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

在球体中渲染矢量,具有更好的感知

我需要渲染一些从(0,0,0)开始的3D矢量,这些矢量在球体上结束.目前我使用python和matplotlib执行此操作:

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import proj3d
from matplotlib.patches import FancyArrowPatch

fig = plt.figure()
ax = fig.gca(projection='3d')
ax.set_aspect("equal")

# render the sphere mesh
u, v = np.mgrid[0:2*np.pi:20j, 00:np.pi:10j]
x=np.cos(u)*np.sin(v)
y=np.sin(u)*np.sin(v)
z=np.cos(v)
ax.plot_wireframe(x, y, z, color="r")
plt.axis('off')

class Arrow3D(FancyArrowPatch):
    def __init__(self, xs, ys, zs, *args, **kwargs):
        FancyArrowPatch.__init__(self, (0,0), (0,0), *args, **kwargs)
        self._verts3d = xs, ys, zs

    def draw(self, renderer):
        xs3d, ys3d, zs3d = self._verts3d
        xs, ys, zs = proj3d.proj_transform(xs3d, ys3d, zs3d, renderer.M)
        self.set_positions((xs[0],ys[0]),(xs[1],ys[1]))
        FancyArrowPatch.draw(self, renderer) …
Run Code Online (Sandbox Code Playgroud)

python data-visualization matplotlib

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

Common Lisp中NULL和NIL的确切区别是什么?

据我所知,NIL是很多东西的符号:空列表,或布尔值false.到目前为止一直很好,但为什么输出中有时会出现NULL?

clisp> (type-of NIL)
NULL
clisp> (type-of t)
BOOLEAN
clisp> (type-of (not t))
NULL
clisp> NIL
NIL
clisp> (eq NULL NIL)
ERROR..
Run Code Online (Sandbox Code Playgroud)

所以NULL不是定义的符号,因为"BASIC-STRING-6"它也不是.但我对术语NULL有点困惑,因为布尔值应该保持布尔值,但如果它被否定.

lisp null common-lisp

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

是否有各种操作系统(和版本)的预处理器定义列表?

例如,映射

Mac OS 10.6.3又名Snow Leopard => __APPLE__ && __LP64__

Windows 7,Windows XP => __WIN32__

Linux => __LINUX__

c++ operating-system c-preprocessor

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

用c ++编写文本/二进制文件最优雅的方法是什么?

我在阅读时发现了一些好的结果,例如:使用迭代器和预分配读取txt,或者读入容器.所以我想知道如何将最优雅的std :: string写入文件?

编辑:读取时我可以通过seek和tellg预先为字符串分配空间,因为我知道字符串的大小,我怎么能告诉文件系统我要写多少?

c++ string file-io file text-files

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

如何在C++中实现grep,以便它与管道(stdin等)一起使用?

我想为我在Windows中使用的Shell实现grep(仅用于学习目的).
我知道grep具有以下语法:

grep pattern files
Run Code Online (Sandbox Code Playgroud)

所以我可以做一个像这样的功能:

int grep(string stringToMatch, string fileName) // just one file
{
   // search file for stringToMatch
   // print line containing stringToMatch
}
Run Code Online (Sandbox Code Playgroud)

我的困惑是,当我使用这样的管道时,grep应该如何工作:

ls | grep someword
Run Code Online (Sandbox Code Playgroud)

我实现了"ls"将所有输出放在一个向量中并返回,所以我想我的grep应该在向量中搜索结果.那么正确的grep函数应该怎么样呢?我需要2个grep函数吗?

提前致谢.

c++ pipe

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

指针地址如何具有不同的长度?

我刚刚执行了这个代码示例:

int *i = (int*) malloc( sizeof(int) );
printf( "%p, %p\n", &i , i );
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

0x7fff38fed6a8, 0x10f7010
Run Code Online (Sandbox Code Playgroud)

所以我想知道为什么第二个地址比第一个地址短?

c pointers c99 pointer-address

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

如何将ArrayList分配给List?

我有以下代码:

import java.util.*;

public class hello {
  public static void main( String[] args ) {
    Collection c = new ArrayList< Integer >();
    List l = new ArrayList< String >();
  }
}
Run Code Online (Sandbox Code Playgroud)

并在"列表l"行中获取错误:

hello.java:6: error: incompatible types
    List l = new ArrayList< String >();
             ^
  required: List
  found:    ArrayList<String>
1 error
Run Code Online (Sandbox Code Playgroud)

我正在使用OpenJDK 1.7:

java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.12) (7u25-2.3.12-4ubuntu3)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)

编辑:当我使用List<String>时:

hello.java:6: error: type List does not take …
Run Code Online (Sandbox Code Playgroud)

java openjdk list arraylist

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