小编Rob*_*vey的帖子

C++能做什么在任何其他语言中都太难或太乱了?

我仍然觉得C++提供了一些无法打败的东西.我不打算在这里开始一场火焰战,如果你对不喜欢C++有强烈的意见,请不要在这里发泄它们.我很想听听C++大师们为什么坚持下去.

我对C++的方面特别感兴趣,这些方面鲜为人知或未充分利用.

编辑:人们,请至少粗略阅读其他回复,以确保你没有复制已经说过的内容,如果你同意别人所说的话,那就投票吧!

c++ unique

30
推荐指数
11
解决办法
6666
查看次数

如何对应用了[Authorize]属性的控制器方法进行单元测试?

我搜索了stackoverflow并用Google搜索了几个小时,但仍未找到解决我"琐碎"问题的任何解决方案.

如果您为过滤器编写单元测试[Authorize] ActionResult,那么如何解决问题以假冒该用户的身份验证?

我有很多ActionResult过滤的方法,[Authorize]我想测试我的所有ActionResult方法,无论它们是否被过滤[Authorize].

我的意思的一个简单例子:

[TestMethod]
public void Create_Get_ReturnsView()
{
 // Arrange
 var controller = new UserController();
 // Act
 var result = controller.Create();
 // Assert
 Assert.IsNotNull(result as ViewResult);
}

[Authorize]
public ActionResult Create()
{
 return View("Create");
}
Run Code Online (Sandbox Code Playgroud)

截至目前,由于[Authorize]过滤器,测试甚至没有命中ActionResult方法,抛出的异常是: System.NullReferenceException: Object reference not set to an instance of an object.

asp.net-mvc unit-testing authorization

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

调整matplotlib的Axes3D中的标签定位

我在matplotlib中使用轴标签重叠刻度标签时遇到问题.我试图通过应用变换或调用set_y()来"手动"重新定位标签,但无济于事.

这是一个重现问题的片段:

import matplotlib
matplotlib.use("TKAGG")
import matplotlib.pyplot as pyplot
import mpl_toolkits.mplot3d

figure = pyplot.figure()
figure.subplots_adjust(bottom=0.25, top=0.75)
axes = figure.gca(projection='3d')
xLabel = axes.set_xlabel('XXX xxxxxx xxxx x xx x')
yLabel = axes.set_ylabel('YY (y) yyyyyy')
zLabel = axes.set_zlabel('Z zzzz zzz (z)')
plot = axes.plot([1,2,3],[1,2,3])

pyplot.show()
Run Code Online (Sandbox Code Playgroud)

注意x和y标签如何与刻度相冲突.我可以优雅地解决这个问题吗?

3d matplotlib

30
推荐指数
5
解决办法
3万
查看次数

bash中两个字符串的最长公共前缀

我有两个字符串.为了示例,它们设置如下:

string1="test toast"
string2="test test"
Run Code Online (Sandbox Code Playgroud)

我想要的是从字符串的开头找到重叠.对于重叠,我的意思是上面例子中的字符串"test t".

# So I look for the command 
command "$string1" "$string2"
# that outputs:
"test t"
Run Code Online (Sandbox Code Playgroud)

如果字符串是,string1="atest toast"; string2="test test"它们将没有重叠,因为检查从开头开始,而"a"在开头string1.

bash string-formatting

30
推荐指数
7
解决办法
7566
查看次数

为什么C++不支持堆栈上的动态数组?

在C99这是合法的:

void f(size_t sz) {
    char arr[sz];
    // ...
}
Run Code Online (Sandbox Code Playgroud)

但是,这个 - 动态大小的堆栈数组 - 已经在C++中被删除了,而没有在C++ 11中看到返回.

AFAIK C++是在考虑到C兼容性的情况下制作的,所以我想知道必须有一些非常好的论据,不包括这个有用的功能,对吗?

我能想到的就是:

优点

  • 允许更智能的阵列大小需要在堆栈上(临时缓冲区?),从而节省内存.
  • 减少"智能指针"(或更糟糕的是,手动错误引入delete [])和慢堆分配.
  • 与C99的兼容性.

缺点

  • 允许人们在堆栈上轻松分配过大的数组,从而产生难以调试的堆栈溢出.
  • 编译器编写者更复杂.

那么,为什么他们在导入其他C99功能时没有包含它?


为了防止这种情况被关闭为"主观"或"不具有建设性",我正在寻找来自委员会成员的引用或者讨论谈论此事的讨论的链接 - 当然还有快速的SO综述的奖励积分.

而不是将其视为小马与仓鼠的讨论,将其视为一个历史问题,仅仅关注所考虑的优势和劣势(如果有的话).


编辑:正如James McNellis在下面的评论中所指出的,C++标准化可变长度数组之前存在C++.你可能会把我的问题读作:" 为什么没有,他们不会添加它? ".

c++ standards stack dynamic-arrays

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

如何实现javascript数组?

即,以下代码如何:

var sup = new Array(5);
sup[0] = 'z3ero';
sup[1] = 'o3ne';
sup[4] = 'f3our';
document.write(sup.length + "<br />");
Run Code Online (Sandbox Code Playgroud)

输出'5'作为长度,当你所做的就是设置各种元素?

我对此代码的"问题"是,我不理解如何在length不调用getLength()setLength()方法的情况下进行更改.当我执行以下任何操作时:

a.length
a['length']
a.length = 4
a['length'] = 5
Run Code Online (Sandbox Code Playgroud)

在非数组对象上,它的行为类似于dict/associative数组.当我在数组对象上执行此操作时,它具有特殊含义.JavaScript中的哪种机制允许这种情况发生?javascript是否有某种类型的属性系统进行翻译

a.length
a['length']
Run Code Online (Sandbox Code Playgroud)

进入"获取"方法和

a.length = 4
a['length'] = 5
Run Code Online (Sandbox Code Playgroud)

进入"设置"方法?

javascript arrays associative-array

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

当图像进入浏览器的可见部分时加载图像?

我在网上浏览,看到了一些我以前从未见过的东西.在这个网站上:http: //blogof.francescomugnai.com/2009/04/mega-roundup-of-geektool-scripts-inspiration-gallery/

当您向下浏览页面时,图像仅在浏览器的可见部分中加载.我以前从未见过这个,并且想知道是否有其他人以及如何做到这一点.

我猜这是某种Wordpress插件(这就是他正在使用的),但我不确定.是javascript吗?它们实际上是在页面加载时加载,但稍后会在"时髦"效果中变得可见,或者这对于更快的页面加载时间实际上是否有用?

javascript ajax jquery image

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

如何更改emacs上的光标颜色

我对Emacs的颜色进行了一些更改,现在唯一错误的是黑色背景上的黑色光标,我将不得不改变它.我该怎么办?

emacs colors cursor

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

将字节插入文件的中间(在windows文件系统中)而不读取整个文件(使用文件分配表)?

我需要一种方法将一些文件簇插入文件的中间以插入一些数据.

通常情况下,我只是读取整个文件并将其与更改一起再次写回来,但文件大小为几千兆字节,只需要30分钟读取文件并再次将其写回.

群集大小不会打扰我; 我基本上可以在插入的簇的末尾写出零,它仍然可以使用这种文件格式.

我如何使用Windows文件API(或其他一些机制)修改文件的文件分配表,在文件中间的指定点插入一个或多个未使用的集群?

c# windows filesystems winapi file

29
推荐指数
2
解决办法
2764
查看次数

如何将参数传递给使用Meteorite的Iron-Router Handlebars中的pathFor?

我有一个带参数的简单路线:

this.route('article', {
        path: '/article/:_id',
        data: function() { return Articles.findOne(this.params._id); }
    });
Run Code Online (Sandbox Code Playgroud)

我想在这里使用带有_id的pathFor把手助手:

{{#each articles}}
<li><a href="{{pathFor 'article' _id}}">{{title}}</a></li>
{{/each}}
Run Code Online (Sandbox Code Playgroud)

这不适用于将_id标记传递到url中...

handlebars.js meteor meteorite iron-router

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