小编ASh*_*lly的帖子

你可以在迭代它时从std :: list中删除元素吗?

我有代码看起来像这样:

for (std::list<item*>::iterator i=items.begin();i!=items.end();i++)
{
    bool isActive = (*i)->update();
    //if (!isActive) 
    //  items.remove(*i); 
    //else
       other_code_involving(*i);
}
items.remove_if(CheckItemNotActive);
Run Code Online (Sandbox Code Playgroud)

我想在更新后立即删除非活动项目,以避免再次走过列表.但是如果我添加注释掉的行,当我到达时会出现错误i++:"List iterator not incrementable".我尝试了一些替代品,它们没有在for语句中增加,但我无法得到任何工作.

当你走std :: list时,删除项目的最佳方法是什么?

c++ list std

233
推荐指数
7
解决办法
21万
查看次数

是否有替代unistd.h for Windows(Visual C)?

我正在将一个为Unix编写的相对简单的控制台程序移植到Windows平台(Visual C++ 8.0).所有源文件都包含"unistd.h",它不存在.删除它,我得到关于'srandom','random'和'getopt'错误原型的投诉.我知道我可以替换随机函数,我很确定我可以找到/ hack-up一个getopt实现.

但我相信其他人也遇到了同样的挑战.我的问题是:Windows中有"unistd.h"端口吗?至少有一个包含那些具有本机Windows实现的功能 - 我不需要管道或分叉.

编辑:

我知道我可以创建我自己的"unistd.h",其中包含我需要的东西的替换 - 特别是在这种情况下,因为它是一个有限的集合.但是,由于它似乎是一个常见的问题,我想知道是否有人已经为更大的功能部分完成了工作.

无法在工作中切换到不同的编译器或环境 - 我坚持使用Visual Studio.

c c++ windows portability unistd.h

158
推荐指数
5
解决办法
27万
查看次数

Python time.sleep()vs event.wait()

我想在我的多线程Python应用程序中定期执行操作.我已经看到了两种不同的方法

exit = False
def thread_func(): 
    while not exit:
       action()
       time.sleep(DELAY)
Run Code Online (Sandbox Code Playgroud)

要么

exit_flag = threading.Event()
def thread_func(): 
    while not exit_flag.wait(timeout=DELAY):
       action()
Run Code Online (Sandbox Code Playgroud)

一种方式优于另一种方式有优势吗?是否使用更少的资源,或者与其他线程和GIL玩得更好?哪一个使我的应用程序中的剩余线程更具响应性?

(假设一些外部事件集exit或者exit_flag,我愿意在关闭时等待完整的延迟)

python multithreading sleep

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

评估语言"图灵完整性"的实用指南是什么?

我读过"什么是图灵完整"和维基百科页面,但我对正式证据不太感兴趣,而不是图灵完全的实际意义.

我实际上要确定的是,我刚刚设计的玩具语言是否可以用作通用语言.我知道我可以证明我是否可以用它来编写图灵机.但是,在我确信成功之前,我不想进行这项运动.

有没有最低限度的功能,没有图灵完整性是不可能的?是否有一系列功能几乎可以保证完整性?

(我的猜测是条件分支和可读/可写的内存存储将使我的大部分方式)


编辑:

我想我已经说过"图灵完成"了.我试图以合理的信心猜测具有特定功能集的新发明的语言(或者具有特定指令集的VM)将能够计算任何值得计算的东西.我知道证明你可以用它建立图灵机是一种方式,但不是唯一的方法.

我所期待的是一套类似的准则:"如果可以做X,Y和Z,它可以或许做任何事情".

computer-science language-design turing-complete

46
推荐指数
6
解决办法
9519
查看次数

是否应在stdout或stderr上打印命令行"usage"?

打印应用程序的"用法"时,是应该在stdout还是stderr上完成?

根据应用程序,我看过几个案例,但似乎没有一个规则.也许我错了,有一个很好的做法.在那种情况下,它是什么?

command-line stdout stderr usage-message

40
推荐指数
2
解决办法
4359
查看次数

你能捕到一个例外<T>哪里有T是什么类型的?

我希望能够捕捉WebFaultException<string>到最具体的一个WebFaultException<T>(T是任何其他类型)作为更一般的情况来处理.这可能吗?

try
{
    // throw exception
}
catch (WebFaultException<string> e)
{
    // handle more specific type
}
catch (WebFaultException<T> e)
{
    // handle more general type
}
catch (Exception e)
{
}
Run Code Online (Sandbox Code Playgroud)

c# generics exception-handling

34
推荐指数
2
解决办法
9171
查看次数

自定义facebook喜欢链接?

是否可以添加自定义的Facebook图标?我希望它成为一个部分,<ul>我真的不想加载另一个库他们的SDK或所有的<meta>标签....

有没有人实现像按钮这样的自定义?我不需要他们的按钮提供的计数器等,说实话,他们是丑陋的.我一直在寻找最近2个小时没有真正的运气.

我找到了这个:

<a name="fb_share"></a> 
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" 
    type="text/javascript">
</script>
Run Code Online (Sandbox Code Playgroud)

但它实现了一个按钮.

编辑:

我已经阅读了他们的API,虽然很容易使用我不喜欢他们<iframe>或XFBML代码生成的按钮.我只是想找出是否有办法从这样的东西制作自定义链接:

<ul>
   <li><a href="some code here">Facebook</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我在他们的API中遗漏了什么吗?它总是生成一个带有计数器和图形的巨大按钮,这正是我不想要的.


javascript facebook

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

如何解交织比特(UnMortonizing?)

从32位int解交织比特的最有效方法是什么?对于这种特殊情况,我只关注奇数位,尽管我确信将两个集合的任何解决方案概括为简单.

例如,我想转换0b010001010b1011.什么是最快的方式?

编辑:

在这个应用程序中,我可以保证偶数位都是零.我可以利用这个事实来提高速度或减少空间吗?

bit-manipulation z-order-curve

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

HTML中的Javascript onload

我想问一个关于Javascript的问题onload.

我正在编写一个包含代码的JSP页面<%@ include file ="body.jsp".包含的body.jsp内容包括:

<table onload="function()">
Run Code Online (Sandbox Code Playgroud)

应该加载javascript函数,但它似乎对页面没有任何影响.是onload仅在使用body标签?

html javascript jsp

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

哪种算法可以在只有O(N)次移动的情况下进行稳定的就地二进制分区?

我试图理解这篇论文:线性时间内稳定的最小空间划分.

似乎这个主张的一个关键部分是

算法BO(nlog 2 n)时间和恒定的额外空间中稳定地排序大小为n的位数组,但仅使O(n)移动.

但是,本文没有描述算法,只引用了另一篇我无法访问的论文.我可以找到几种方法在时间范围内进行排序,但是我很难找到一个保证O(N)移动而不需要超过恒定空间的方法.

这个算法B是什么?换句话说,给定

boolean Predicate(Item* a);  //returns result of testing *a for some condition
Run Code Online (Sandbox Code Playgroud)

是有一个功能B(Item* a, size_t N);,其稳定地排序一个使用谓词如少于NLOG排序键2个 n次呼叫到谓词,只有O(N)写入到执行一个

algorithm big-o partitioning stable-sort

18
推荐指数
2
解决办法
3752
查看次数