问题列表 - 第16798页

如何在C++中将DRY原则应用于迭代器?(iterator,const_iterator,reverse_iterator,const_reverse_iterator)

好的,所以我现在有两个(完全不相关的,不同的项目)类使用迭代器.一个拥有iterator并按reverse_iterator预期工作,另一个,当前一个具有iterator半破坏const_iterator(具体而言,因为const_iterator派生自迭代器,代码LinkedList<int>::iterator i = const_list.begin()有效并允许您修改const定义的列表......).
我打算将所有四种类型添加到这个类......如果可以的话.

我如何继续最小化复制/粘贴代码并仅更改返回类型?创建一个类似于base_iterator继承的基类?创建一个iteratorconst_iterator从中继承?从某些std :: class继承?如果这些案例中的任何一种都是"最佳"方法,那么代码会在哪里?
也许没有其他选择是好的?我在这里迷路了,找不到太多的参考资料.

任何建议都表示赞赏,但请记住,我是这个主题的新手(一般都是迭代器和C++,尤其是OOP).我试图研究GCC附带的头文件是徒劳的 - 它们并不完全是我正在寻找的教程.

c++ inheritance code-reuse iterator dry

5
推荐指数
1
解决办法
1152
查看次数

可取消在.NET中排序?

我在VirtualMode中使用ListView来显示非常多的行,数百万行.存储在通用列表中的行的数据.

现在我想实现一个排序功能,它将由一些Comparer对List进行排序.

问题是,目前,平均单一排序大约需要30秒,在此期间,用户无法对ListView执行任何操作,必须等到结束.

并非每个用户都会接受等待那么长时间,大多数用户会取消排序,如果他们可以,我想允许该取消功能.不幸的是,内置的List.Sort无法取消,也无法取消Array.Sort.

现在排序发生在单独的线程上,所以我可以使用Thread.Abort,但它可能会导致List损坏,对我来说是不可接受的.

除了自己重新实现整个Sort算法之外,我能做些什么吗?

谢谢.

.net c# sorting user-interface

3
推荐指数
1
解决办法
320
查看次数

C#低级键盘挂钩不工作

这是我的keyhooking类的代码,但它不起作用.我想知道是否有人可以告诉我为什么?我正在另一个控制台应用程序中实现它.调试消息提供正确的输出,但键盘钩子根本不捕获键.我希望有人能告诉我原因.

namespace GlobalHooks
{
    public class InterceptKeys
    {        
        private const int WH_KEYBOARD_LL = 13;
        private const int WM_KEYDOWN = 0x0100;

        private static IntPtr _hookID = IntPtr.Zero;
        private static String keysHooked = String.Empty;

        private static LowLevelHookProc keyboardHook;

        public delegate IntPtr LowLevelHookProc(int nCode, Int32 wParam, IntPtr lParam);
        public delegate void KeyboardHandleFunction(int vkCode);
        public static event KeyboardHandleFunction keyHookReturn;

        public InterceptKeys(KeyboardHandleFunction func)
        {
            keyHookReturn = func;
            keyboardHook = new LowLevelHookProc(HookCallback);
        }

        public static void debug()
        {
            Console.Write("\n[Success!] _hookID: "+_hookID);
            Console.Write("\n[Success!] keyboardProc: "+keyboardHook.ToString());
        }

        private …
Run Code Online (Sandbox Code Playgroud)

c# keyboard hook

3
推荐指数
1
解决办法
3351
查看次数

后台Shell作业后为什么Applescript不退出?

我可以创建一个(非常)简单的applescript应用程序来运行Firefox后台并退出.(原因是我有不同的工作和家庭档案).我的脚本基本上是:

做shell脚本"/Applications/firefox.app/Contents/MacOS/firefox -no-remote -P'Personal'&"

它可以工作,但在退出Firefox之前,脚本/应用程序不会退出.我该如何解决这个问题?

applescript

5
推荐指数
1
解决办法
2543
查看次数

setTimeout里面的for循环

我想要一个字符串出现字符转换为以下代码:

function initText()
{
    var textScroller = document.getElementById('textScroller');
    var text = 'Hello how are you?';

    for(c = 0; c < text.length; c++)
    {
        setTimeout('textScroller.innerHTML += text[c]', 1000);
    }
}

window.onload = initText;
Run Code Online (Sandbox Code Playgroud)

它不起作用..我做错了什么?

javascript loops settimeout

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

典型Linux发行版中最旧的代码

出于好奇:典型的Linux发行版中最古老的代码/包是什么?Emacs的?GCC?

unix linux

6
推荐指数
1
解决办法
1161
查看次数

并发写入相同的内存地址

如果两个线程同时尝试写入同一个地址,那么并发写入后的值是否保证是线程尝试写入的值之一?或者是否可以获得这些位的组合?

另外,当位处于不稳定状态时,另一个线程是否可以读取存储器地址?

我猜这个问题可归结为如果对单个内存地址的读取或写入在硬件级别是原子的.

memory parallel-processing

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

是否有像Perl的Win32 :: FileNotify for Linux或OS X?

我一直在Windows上使用Win32 :: FileNotify,我很想知道Linux和OS X是否有类似的东西.我无法使用Google找到这样的模块.这里有人知道这样的事吗?

perl cross-platform cpan file last-modified

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

在Mac上进行软件开发

我只是想知道从Linux软件开发的角度和软件开发的角度来看,如果Macbook是值得的.我知道外观和感觉非常好.但是我想知道更多关于它编码是多么容易(工具,IDE等).我认识拥有mac的人大多数不是软件开发人员.他们刚买了它,因为他们想要很酷的因素.所以,我真的无法判断它的需要.

谢谢,Ajay G.

macos

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

当main()退出时调用另一个函数

当main()退出C时,是否可以调用额外的函数?

谢谢!

c program-entry-point

10
推荐指数
2
解决办法
612
查看次数