STL
Express408
这个作者很懒,什么都没留下…
展开
-
STL 基本操作
1. 查找 Vector 搜寻一个vector中第一次出现5这个值的地方,而且,如果它找到了,就把这个值改为0。vector v;vector::iterator first5(find(v.begin(), v.end(), 5)); if (first5 != v.end()){ *first5 = 0; }对于多线程参考:http://blog.csdn.net/bichen转载 2010-04-30 15:44:00 · 262 阅读 · 0 评论 -
STL容器的线程安全
多个读取者是安全的。多线程可能同时读取一个容器的内容,这将正确地执行。当然,在读取时不能有任何写入者操作这个容器。 对不同容器的多个写入者是安全的。多线程可以同时写不同的容器。 当涉及到线程安全和STL容器时,你最好别对STL抱有任何的期望。你需要自己来控制多线程控制的方方面面。线程安全从来就不是STL的专长。java里很多容器都被实现为线程安全的,因为java在语言层面有对多转载 2010-04-30 15:38:00 · 351 阅读 · 0 评论 -
vector调用erase删除元素
for(std::vector::iterator iter = g_vecDownLoadInfos.begin(); iter != g_vecDownLoadInfos.end();) { if(2 == (*iter)->nStatus ) { iter=g_vecDownLoadInfos.erase(iter); } else { iter++; } } //原创 2010-05-11 13:27:00 · 321 阅读 · 0 评论 -
自定义结构体作为std::map的key
map的key要求是copyable和comparable, typedef struct stabc{ int a; int b; int c; bool operator { return (a!= stABCComp .a) ? (a (b!= stABCComp .b) ? (b (c }}StABC; inline bool原创 2010-05-12 16:41:00 · 1843 阅读 · 0 评论