心寄笔端 附庸风雅

甘草的技术博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1. VS 2008的STL的线程安全的吗?

VS 2008用的是PJ STL。当编译选项为/MT, /MTd, /MD, or /MDd的时候,容器和class complex的线程安全规则如下(容器包括vector, deque, list, queue, stack , priority_queue, valarray, map, multimap, set, multiset, basic_string, bitset):
只是多线程读安全;单个线程写,而没有其他线程读写,也安全;此外,线程安全针对的是对象,而和它们是不是同类型有关(猜想是极少用到static成员罢)。

总结一下,四个字,线程不安全

http://msdn.microsoft.com/ja-jp/library/c9ceah3b%28v=VS.90%29.aspx

 

2. std::map的实用疑惑

一部分人以为下面的情形,需要初始化,这个不是Java,是不需要如此的。

map<int, set<int> > m;

set<int>& s = m[1];

这里不需要判断m[1]是不是存在(有些代码会写成m[1] = set<int>();)。

 

3. delegate

有Boost的function用,就用这个。自己写的,不是功能不全,要么就是效率不高。

/Files/healerkx/delegates.rar 

我剽窃了各个方面的代码,写了一个不完全的示例;还没有完,但是此处就是很多问题的分界线了。怎么选择呢?

 

posted on 2010-09-22 21:08  甘草  阅读(1227)  评论(0编辑  收藏  举报
Baidu
Google
心寄笔端
TEST
以后我会加上Power By的,先别介意