考虑具有成员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)
但它太乏味了,我太懒了..有更好的选择吗?
我很久以前从subversion存储库(subversion)下载了一个文件.所以这不是来自该存储库的结账.我修改了这个文件,但是在下载这个文件时我不记得修改了.
该项目进化了,现在我想将这些文件合并到文件中(两年后).这个文件是一个巨大的脚本.
因此,我的基本尝试是从存储库中找到最佳匹配的修订版,以便查看我已更改的内容,然后最终合并这两个文件.为了这个目的,我会检查每个修订,我认为它可能是这个修订,直到现在,做一个差异,并计数行.我认为,最小的差异将给我最好的匹配修订.
还有其他想法吗?
我将Dropbox与encfs一起使用。问题是我的主机在文件名中仅支持256个字符,因此encfs仅支持〜190。有没有一种方法可以避免这种情况,而无需重新安装主机文件系统并增加其限制?
我主要在ubuntu 11.10中使用ext4作为文件系统,但同时将hfs作为文件系统的Mac OSX 10.6和Windows对我而言并不那么重要。
干杯,布鲁贝尔。
编辑文档时,我总是坚持最大80或150个字符的某个行宽,这取决于我写的内容(代码,文本等).如果我只改变一点,整个段落将会移动,因此多行现在处于不同的顺序,以便最佳地适合给定的行宽.我如何区分它以查看实际的真实变化而不是重新封装的工件?
例如,textwidth = 30:

实际的变化相当小:
我在这里使用(g)vimdiff的事实无论如何,如果其他软件可以实现所需的差异.
当然,软件设计为在文本到达窗口边框时自动换行,因此我也尝试在段落末尾使用换行符.这个不好的原因是,自动差异是基于行的,对于段落中的小变化我得到整行,意味着整个段落为差异更新:(.
在流教程中,关于从中获取的关闭流没有任何说法Files.newInputStream( path ).只有一些模糊不清:
返回的流是否可异步关闭和/或可中断是高度特定于文件系统提供程序的,因此未指定.
什么是"异步"在这种情况下?如果我显式关闭流或另一个线程异步关闭流?
当我指定这样的枚举时:
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) 我需要渲染一些从(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) 据我所知,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有点困惑,因为布尔值应该保持布尔值,但如果它被否定.
例如,映射
Mac OS 10.6.3又名Snow Leopard => __APPLE__ && __LP64__?
Windows 7,Windows XP => __WIN32__
Linux => __LINUX__
我在阅读时发现了一些好的结果,例如:使用迭代器和预分配读取txt,或者读入容器.所以我想知道如何将最优雅的std :: string写入文件?
编辑:读取时我可以通过seek和tellg预先为字符串分配空间,因为我知道字符串的大小,我怎么能告诉文件系统我要写多少?
我想为我在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函数吗?
提前致谢.
我刚刚执行了这个代码示例:
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)
所以我想知道为什么第二个地址比第一个地址短?
我有以下代码:
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)