- <pre name="code" class="cpp">#include <vector>
- std::vector<int> str;
- // 插入到末尾
- str.push_back(111);
- str.push_back(222);
- str.push_back(333);
- CCLOG("-------------------------");
- // 注意i是一个返回的迭代器,str.end()[0]指向的是str迭代器后面的位置,而不是str最后的元素
- for(vector<int>::iterator i = str.begin(); i<str.end(); i++)
- CCLOG("%d",i[0]);
- //删除元素
- str.erase(str.end() - 1);
- for(vector<int>::iterator i = str.begin(); i<str.end(); i++)
- CCLOG("%d",i[0]);
- CCLOG("-------------------------");</pre>
- <pre></pre>
- <p>输出:</p>
- <p>-------------------------</p>
- <p>111</p>
- <p>222</p>
- <p>333</p>
- <p>111</p>
- <p>222</p>
- <p>-------------------------</p>
- <p><span style="white-space:pre">2、CCArra</span><span style="white-space:pre">y</span></p>
- <p><span style="white-space:pre"></span></p>
- <pre name="code" class="cpp"> //ccarray
- CCArray * nodes ;
- //注意CCArray里面的元素必须继承CCObject
- CCNode *node = new CCNode();
- //插入
- nodes->addObject(node);
- //取出
- unsigned int key = 0;
- //key start form 0
- CCNode *temp = (CCNode *)nodes->objectAtIndex(key);
- //删除
- nodes->removeObject(temp);</pre>》CCArray的好处比较好用,自动释放废弃元素内存,比较符合java程序员的程序员<br>
- <br>
- <p></p>
- <p><span style="white-space:pre">3、map</span></p>
- <p style="text-align:left"><span style="font-family:Arial,Helvetica,simsun,u5b8bu4f53; color:#254050"><span style="font-size:14px; line-height:25px; white-space:pre"></span></span></p><pre name="code" class="cpp">#include <map> //注意,STL头文件没有扩展名.h
- //定义
- std::map<int, CCNode *> mapRecord;
- //插入
- mapRecord.insert(map<int, CCNode *> :: value_type(key, value));
- //取出,先find一下看有没有,直接用mapRecord[1]如果没有会自动插入一个空的条目
- CCNode *node;
- //定义一个条目变量(实际是指针)
- std::map<int, CCNode *> ::iterator it= mapRecord.find(key);
- if(it == mapRecord.end()) {
- //没找到
- node = NULL;
- }
- else {
- //找到
- node = it->second;
- }
- //删除
- /*
- iterator erase(iterator it); //通过一个条目对象删除
- iterator erase(iterator first, iterator last); //删除一个范围
- size_type erase(const Key& key); //通过关键字删除
- clear()就相当于 enumMap.erase(enumMap.begin(), enumMap.end());*/
- std::map<int, CCNode *>::iterator iter = mapRecord.find(key);
- if (iter != mapRecord.end())
- {
- mapRecord.erase(iter);
- return true;
- }
- else
- {
- return false;
- }</pre><br>
- <br>
- <p></p>
- <span style="font-family:Arial,Helvetica,simsun,u5b8bu4f53; color:#254050">map这里有个博客讲的比较全 :<a href="http://wmnmtm.blog.163.com/blog/static/38245714201072310131130/">http://wmnmtm.blog.163.com/blog/static/38245714201072310131130/</a><br>
- <br>
- </span>
- <p></p>
- <pre name="code" class="cpp" style="background-color: rgb(255, 255, 255); "></pre><pre name="code" class="cpp" style="background-color: rgb(255, 255, 255); "></pre><br>
- <br>