我有代码看起来像这样:
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时,删除项目的最佳方法是什么?
我正在将一个为Unix编写的相对简单的控制台程序移植到Windows平台(Visual C++ 8.0).所有源文件都包含"unistd.h",它不存在.删除它,我得到关于'srandom','random'和'getopt'错误原型的投诉.我知道我可以替换随机函数,我很确定我可以找到/ hack-up一个getopt实现.
但我相信其他人也遇到了同样的挑战.我的问题是:Windows中有"unistd.h"端口吗?至少有一个包含那些具有本机Windows实现的功能 - 我不需要管道或分叉.
编辑:
我知道我可以创建我自己的"unistd.h",其中包含我需要的东西的替换 - 特别是在这种情况下,因为它是一个有限的集合.但是,由于它似乎是一个常见的问题,我想知道是否有人已经为更大的功能部分完成了工作.
无法在工作中切换到不同的编译器或环境 - 我坚持使用Visual Studio.
我想在我的多线程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,我愿意在关闭时等待完整的延迟)
我读过"什么是图灵完整"和维基百科页面,但我对正式证据不太感兴趣,而不是图灵完全的实际意义.
我实际上要确定的是,我刚刚设计的玩具语言是否可以用作通用语言.我知道我可以证明我是否可以用它来编写图灵机.但是,在我确信成功之前,我不想进行这项运动.
有没有最低限度的功能,没有图灵完整性是不可能的?是否有一系列功能几乎可以保证完整性?
(我的猜测是条件分支和可读/可写的内存存储将使我的大部分方式)
编辑:
我想我已经说过"图灵完成"了.我试图以合理的信心猜测具有特定功能集的新发明的语言(或者具有特定指令集的VM)将能够计算任何值得计算的东西.我知道证明你可以用它建立图灵机是一种方式,但不是唯一的方法.
我所期待的是一套类似的准则:"如果可以做X,Y和Z,它可以或许做任何事情".
打印应用程序的"用法"时,是应该在stdout还是stderr上完成?
根据应用程序,我看过几个案例,但似乎没有一个规则.也许我错了,有一个很好的做法.在那种情况下,它是什么?
我希望能够捕捉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) 是否可以添加自定义的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中遗漏了什么吗?它总是生成一个带有计数器和图形的巨大按钮,这正是我不想要的.
从32位int解交织比特的最有效方法是什么?对于这种特殊情况,我只关注奇数位,尽管我确信将两个集合的任何解决方案概括为简单.
例如,我想转换0b01000101成0b1011.什么是最快的方式?
编辑:
在这个应用程序中,我可以保证偶数位都是零.我可以利用这个事实来提高速度或减少空间吗?
我想问一个关于Javascript的问题onload.
我正在编写一个包含代码的JSP页面<%@ include file ="body.jsp".包含的body.jsp内容包括:
<table onload="function()">
Run Code Online (Sandbox Code Playgroud)
这应该加载javascript函数,但它似乎对页面没有任何影响.是onload仅在使用body标签?
我试图理解这篇论文:线性时间内稳定的最小空间划分.
似乎这个主张的一个关键部分是
算法B在 O(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)写入到执行一个?
c++ ×2
javascript ×2
algorithm ×1
big-o ×1
c ×1
c# ×1
command-line ×1
facebook ×1
generics ×1
html ×1
jsp ×1
list ×1
partitioning ×1
portability ×1
python ×1
sleep ×1
stable-sort ×1
std ×1
stderr ×1
stdout ×1
unistd.h ×1
windows ×1