我使用以下模板获取指向数组的最后一个元素后面的指针:
template <typename T, size_t n>
T* end_of(T (&array)[n])
{
return array + n;
}
Run Code Online (Sandbox Code Playgroud)
现在我似乎记得这种方法存在一些问题,但我不记得它是什么.我相信它与类型参数或函数参数的选择有关,但我不确定.所以就像进行健全性检查一样,您是否看到上述代码存在任何问题?小用量测试:
int test[] = {11, 19, 5, 17, 7, 3, 13, 2};
std::sort(test, end_of(test));
Run Code Online (Sandbox Code Playgroud) 在我的GIS应用程序中,数据有时存储在"Google Mercator"(以米为单位)中,有时存储在WGS84 LatLon中.我想要一个可靠的库来轻松地以"科学"的方式转换这些数据,而不是手动搞乱它,冒着很大的错误.
我遇到过Proj4,显然能够做到这一点:http://trac.osgeo.org/proj
但我找不到类似的Java库(或Groovy).鉴于这些预测在在线应用中越来越普遍,这样的项目将是非常有益的.一个小罐子会很棒:-)
有一个Java端口,但没有任何文件可供下载:http://www.jhlabs.com/java/maps/proj/
基本上我需要做这种转换:http://proj4js.org
有关如何在Java中执行此操作的任何想法?
谢谢,Mulone
我有这个查询:SHOW COLUMNS FROM mash在我的while循环中可以正常工作,用于构建由表列名称构成的select元素.但在我的表中我有"id"和"tstamp",我不想在select元素中,这是否可以排除这些列?
echo "<form action='".$_SERVER['PHP_SELF']."' method='get'>";
connectDB();
$result = mysql_query("SHOW COLUMNS FROM mash") or die(mysql_error());
echo '<select name="column" class="column">';
while ($row = mysql_fetch_array($result)) {
echo "<option value='".$row[0]."'>".ucwords($row[0])."</option>";
}
closeConn();
echo '</select>';
echo "</form>";
Run Code Online (Sandbox Code Playgroud) 关于我使用Clojure和Java开发的应用程序,我有一个有趣的架构问题.该应用程序涉及许多需要协调的密集,并发数据处理任务.
以下是混合Clojure和Java的基本原理:
鉴于我正在使用这两种语言 - 我应该采用什么逻辑或原则来确定两者之间的分界线?特别是,我对如何设计一个能够利用两种语言相对优势的适当级别的API /接口感兴趣.
var e = document.getElementById('anelement');
e.innerHTML = f.anelement
Run Code Online (Sandbox Code Playgroud)
里面anelement我想更换,例如某个单词的每一次出现apple与orange我将如何去这样做?
我很难在Windows中配置NetBeans for Rails3.我遇到了很多问题,很多人甚至在这里报道过.
所以我的问题是:以下哪个IDE最适合Windows Box中的Rails3:
RubyMine的
科莫多IDE
RadRails的
看,我不想开始讨论(有点x对y).我只是想知道那些已经在使用Windows开发Rails3的人,从长远来看,什么是更好的选择.
谢谢!
编辑
NetBeans的问题
注意:我现在使用RubyMine并且没有遇到任何问题
是否有一种指定的方法来声明一个方法或函数在JsDoc中返回void?目前我认为这void是默认的返回值,必须专门提供其他返回值:
/**
* @return {Integer} The identifier for ...
*/
Run Code Online (Sandbox Code Playgroud) 我试图编写用于访问图像像素的优化代码,并且需要在不进入汇编级别的情况下使for循环超快.此外,沿着行进行索引以最小化高速缓存未命中.
这就是我所拥有的:
for (indr=0;indr<(height-1)*width;indr+=width) {
for (indc=0;indc<width;indc++){
I[indr+indc]= dostuff ;
}
}
Run Code Online (Sandbox Code Playgroud)
我不能使它成为一个循环,因为"dostuff"包括访问不在同一行上的元素.
有更快的方法吗?
编辑 好的,因为我之前的帖子稍微不清楚我在这里添加完整的代码.它非常难以理解,但一般的想法是我用一个简单的盒子使用积分图像进行卷积.图像首先在左侧和底部用ws + 1个零填充,在右侧和顶部用ws零填充.然后将其制成整体图像Ii.以下函数获取积分图像并提取卷积,其中结果Ic与原始图像的大小相同.
void convI(float *Ic,float *Ii,int ws, int width, int height)
{
int W=width+ws*2+1,indR;
int H=height+ws*2+1,indC;
int w=width, indr;
int h=height, indc;
int jmpA=W*(ws+1),jmpC=W*ws,jmpB=ws+1,jmpD=ws;
for (indR=W*(ws+1),indr=0;indr<width*(height-1);indR+=W,indr+=width) {
for (indC=ws+1,indc=0;indc<width;indC++,indc++){
//Performs I[indA]+I[indD]-I[indB]-I[indC];
Ic[indr+indc]=
Ii[indR-jmpA+indC-jmpB]+
Ii[indR+jmpC+indC+jmpD]-
Ii[indR+jmpC+indC-jmpB]-
Ii[indR-jmpA+indC+jmpD];
}
}
}
Run Code Online (Sandbox Code Playgroud)
这就是"dostuff"的一部分.循环缓慢.
到目前为止,我已经完全在空间域中实现了高斯模糊滤波器,利用了高斯的可分离性,即沿着行应用1D高斯核,然后沿着图像的列应用.这工作得很好.
现在,仅给出空间域的NxN卷积矩阵的大小N,我想在频域上实现完全相同的模糊图像.这意味着我将图像加载到矩阵中(numpy,我正在使用python),对它应用FFT(然后我有G(x,y)),然后我还必须有一个滤波器H( u,v)在频域中,它也类似于某些2d高斯的形状,其中心值为1.0,然后值越来越偏离0离我的中心越远.然后我在频域中进行乘法(在我必须考虑进行H的中心偏移之前)然后应用iFFT.
我遇到的麻烦是找到导致相应H(u,v)的确切公式(即找到sigma,std-deviation).从空间域,如果给我一个掩码大小N,我知道std-dev西格玛可以近似为sigma =(maskSize-1)/2/2.575,例如对于掩码大小N = 15我得到对于e ^ - (x²/2sigma²),std-dev = 2.71845,现在只考虑1D情况.
但是如何获得频域的sigma?
有趣的是顺便说一句,理论上我知道如何使用Mathematica获得sigma,但结果是纯粹的假,我可以在这里证明:
gauss1d[x_, sigma_] := Exp[-(x^2)/(2 sigma^2)]
Simplify[FourierTransform[gauss1d[x, sigma], x, omega], sigma > 0]
Run Code Online (Sandbox Code Playgroud)
结果是E ^( - (1/2)omega ^ 2 sigma ^ 2)*sigma
这是假的,因为它在E函数的指数中将1 /sigma²转换为sigma².因此,如果你画出这个,你就会发现标准偏差变小了很多,因为H(u,v) - 高斯很多"更薄".但是,它实际上应该在频域中比在空间域中宽得多!它没有任何意义......