C++代码相关

mac2022-06-30  25

vector

vector清空 清空元素,但不回收空间 vecInt.clear(); j= vecInt.capacity(); // j=512 i = vecInt.size(); // i=0 erase循环删除,结果同上 vector <int>::iterator iter=vecInt.begin(); for ( ; iter!=vecInt.end() ; ) { iter=vecInt.erase(iter); } j= vecInt.capacity(); // j=512 i = vecInt.size(); // i=0 swap,清除元素并回收内存 vector <int>().swap(vecInt); //清除容器并最小化它的容量, // vecInt.swap(vector<int>()) ; 另一种写法 j= vecInt.capacity(); //j=0 i = vecInt.size(); //i=0

std::map常见用法

C++ Map常见用法说明

插入操作 [] 单个插入: 存在键值key,赋值修改操作,如果没有则插入 insert 进行单个和多个插入 // 插入单个键值对,并返回插入位置和成功标志,插入位置已经存在值时,插入失败 pair<iterator,bool> insert (const value_type& val); //在指定位置插入,在不同位置插入效率是不一样的,因为涉及到重排 iterator insert (const_iterator position, const value_type& val); // 插入多个 void insert (InputIterator first, InputIterator last); //c++11开始支持,使用列表插入多个 void insert (initializer_list<value_type> il); 取值 at和[ ]两种操作,at会作下标检查,而[]不会 map<int, string> ID_Name; //ID_Name中没有关键字2016,使用[]取值会导致插入 //因此,下面语句不会报错,但打印结果为空 cout<<ID_Name[2016].c_str()<<endl; //使用at会进行关键字检查,因此下面语句会报错 ID_Name.at(2016) = "Bob"; 容器查询 // 查询map是否为空 bool empty(); // 查询map中键值对的数量 size_t size(); // 查询map所能包含的最大键值对数量,和系统和应用库有关。 // 此外,这并不意味着用户一定可以存这么多,很可能还没达到就已经开辟内存失败了 size_t max_size(); // 查询关键字为key的元素的个数,在map里结果非0即1 size_t count( const Key& key ) const; // 迭代器删除交换顺序比较查找操作符
最新回复(0)