我正在寻找一个程序,我可以在一个窗口中输入C++代码片段,按一个按钮,然后在另一个窗口中输出.编辑应该以某种方式隐藏在按钮后面.在每个片段的基础上会很好,完全互动可能要求太多.它应该在Linux/Unix下运行.主要用例是学习/测试/简短调试等.
我找到的相关内容:
- python的Reinteract项目(我告诉sage有类似的功能)
- 这里是C#的相同线程:C#Console?
- 来自CERN ROOT项目的CINT解释器(可能很接近,但也许有更舒适的应用程序)
- 一些名为Quickly Compile或Code Snippet的程序,它们是M $.
这里是:我有一个U无符号整数的C++/TR1 unordered_set (粗基数100-50000,粗略值范围0到10 ^ 6).鉴于基数N,我希望尽可能快地迭代N随机但独特的成员U.没有典型值N,但它应该对小的快速工作N.
更详细地说,这里的"随机性"的概念是两个调用应该产生稍微不同的子集 - 越不同,越好,但这不是太关键.只要块的起始索引是随机N的U,我就会对连续(或包裹的连续)成员块感到满意.以相同的成本不连续更好,但主要关注的是速度.U温和地改变,但在呼叫之间不断变化(在呼叫之间插入/删除大约0-10个元素).
我到底有多远:
平凡的方法:
选择随机指标i这样(i+N-1) < |U|.获取迭代器,使用它it来U.begin()推进它,然后在子集上启动实际循环.优点:容易.缺点:浪费++.iit++
桶的做法(这我有"新",从上面的链接导出):
选择i如上,发现桶b中的i个元素是,获得local_iterator lit
到U.begin(b),提前lit通过lit++,直到我们打i的个元素U,并从此不断递增lit的N时间.如果我们到达桶的末尾,我们lit将从下一个桶的开头继续.如果我想让它更随机,我可以i完全随机选择并包裹桶.
我的开放性问题:
U我找不到i-th元素时我不能以某种方式得到迭代器?这样可以省去桶边界控制等等.对于我来说,作为一个初学者,标准的前向迭代器应该知道如何 …