昨天看effectve c++的时候,发现了auto_ptr这个东西.由于我待过的公司都是用的老版c++,代码里智能指针什么的完全没有出现过,都是直接操作的原始指针.虽说我很少出错,但是总归还是不太安全.言归正传,说回auto_ptr,这个东西一开始我也见过,但是当时在赶项目也就没有怎么上心,这回正好看到了,就详细了解下. 在effiectev c++中我了解到,这是老版c++里的智能指针(之前我只知道c++11里的share_ptr和unique_ptr),同一个对象从始至终只会有一个auto…
3205: 数组做函数参数--数组元素求和1--C语言 时间限制: 1 Sec  内存限制: 128 MB提交: 178  解决: 139[提交][状态][讨论版][命题人:smallgyy] 题目描述 定义一个函数来完成对参数数组中元素的排序工作,函数声明如下: int sum(int array[ ][4]);//该函数完成对array数组中的所有元素求和排序工作 在以下程序的基础上,完成对sum函数的定义,提交时,只提交sum函数的定义即可. #include <stdio.h > in…
1053 Path of Equal Weight (30 分)   Given a non-empty tree with root R, and with weight W​i​​ assigned to each tree node T​i​​. The weight of a path from R to L is defined to be the sum of the weights of all the nodes along the path from R to any leaf…
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> //sort函数.交并补函数 4 #include <iterator> //求交并补使用到的迭代器 5 using namespace std; 6 7 //打印容器vector 8 void print_vector(vector<int> v) 9 { 10 if(v.size()>0) 11 { 12 c…
转自:http://hi.baidu.com/chain2008/blog/item/821744585e12c5c89c8204e8.html 今天又忘了怎么在vector中查找某一个值..唉..每次都忘..现在记下来..(- -!) stl包括容器.迭代器和算法: 容器 用于管理一些相关的数据类型.每种容器都有它的优缺点,不同的容器反映出程序设计的不同需求.容器自身可能由数组或链表实现,或者容器中的每个元素都有特殊的关键值. 迭代器 用于遍历一个数据集中的每个元素.这些数据集可能是容器或者容…
问题:stl中的vector容器经常造成删除假象,这对于c++程序猿来说是极其讨厌的,<effective stl>大师已经将之列为第17条,使用交换技巧来修整过剩容量. 内存空洞这个名词是网上的学者给出的.我认为用来描写叙述这个基本现象特别easy提醒自己vector删除的这个陷阱. 首先给出一段代码: 35 void testvector() 36 { 38     vector v; 39     v.push_back(1); 40     v.push_back(2); 41    …
#include <iostream> #include <vector> using namespace std; //STL vector的几种清空容器(删除)办法 void test() { vector<int> vecnum; vecnum.push_back(); vecnum.push_back(); vecnum.push_back(); vecnum.push_back(); vecnum.push_back(); vecnum.push_back()…
<<effectSTL>>书中提到erase-remove方法  即c.rease(remove(c.begin(),c.end(),1963),c.end()) 关于remove这里有一篇文章 http://blog.csdn.net/vbanglev/archive/2007/02/22/1512521.aspx -----------------------------------------------------------------------------------…
今天在删除vector中的元素中遇到一个问题,这里记录下来以便以后查阅. 预备知识:用到了erase()函数,对于一个容器c来说,假设迭代器为p,那么执行: c.erase(p)之后就删除了容器c中p所指向的元素,并且返回一个迭代器,返回的迭代器指向刚才所删除元素后面的一个元素(这里是关键)! 有了上面的知识后,我编写了下面的代码(头文件略去),删去矢量vals中的1: int main() { vector<int> vals; vals.push_back(); vals.push_bac…
insert() 函数有以下三种用法: iterator insert( iterator loc, const TYPE &val );  //在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器 void insert( iterator loc, size_type num, const TYPE &val );  //在指定位置loc前插入num个值为val的元素 void insert( iterator loc, input_iterator start, inpu…