我有一个多线程应用程序,必须经常读取一些数据,偶尔会更新数据.现在,互斥锁可以保持对数据安全的访问,但是它很昂贵,因为我希望多个线程能够同时读取,并且只在需要更新时将其锁定(更新线程可以等待其他线程完成) .
我认为这是boost::shared_mutex应该做的,但我不清楚如何使用它,并没有找到一个明确的例子.
有没有人有一个我可以用来开始的简单例子?
如果我有一个std::vector或std::map变量,并且我想看到内容,那么在调试时看到第n个元素会非常痛苦.是否有插件或一些技巧,以便在调试时更容易观察STL容器变量(VS2003/2005/2008)?
我需要以任意角度确定多边形的边界矩形.这张照片说明了我需要做的事情:
alt text http://kevlar.net/RotatedBoundingRectangle.png
对于简单的2d多边形,我需要在各个角度确定粉红色矩形.
任何解决方案都非常感谢!
编辑:
谢谢你的答案,我得到了中心点正确的工作.你们真棒!
有没有人有关于构建Qt的开源版本的说明?既然已经打开了存储库,我正在尝试为VS2008构建,但是在尝试构建qmake时我遇到了错误.
我发现了一个问题,我希望使用Visual Studio来编写和编译Qt4的开源版本,但这些信息已经过时,并没有真正帮助我.作为参考,这是我尝试构建时会发生什么configure -platform win32-msvc2008
Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
cl -c -Foproject.obj -W3 -nologo -O2 -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -
IC:\dev\open_source\qt\include -IC:\dev\open_source\qt\include\QtCore -IC:\dev\open_source\qt\include -IC:\dev\open_sou
rce\qt\include\QtCore -IC:\dev\open_source\qt\src\corelib\global -IC:\dev\open_source\qt\include\QtScript -IC:\dev\op
en_source\qt\mkspecs\win32-msvc2008 -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL
-DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -D
QT_NO_DATASTREAM -DQT_NO_PCRE -DQT_BOOTSTRAPPED -DQMAKE_OPENSOURCE_EDITION project.cpp
project.cpp
c:\dev\open_source\qt\src\corelib\tools\qstringlist.h(45) : fatal error C1083: Cannot open include file: 'QtCore/qalgori
thms.h': No such file or directory
NMAKE : …Run Code Online (Sandbox Code Playgroud) 我有两个位图,我想只在像素位于由四个角(四边形)定义的区域内时才将像素从A复制到B. 位图A和B具有相同的大小,并且四边形被定义为图像的像素空间中的四个{x,y}坐标.
最糟糕的情况我可以测试每个像素的中心对着四边形,看看像素的中心是否在四边形内,但这非常慢.什么是更好的算法?