• stl之vector的应用


    这里主要是对vector容器的一些常见应用的总结。至于vector的构造函数及初始化能够參考http://blog.csdn.net/lsh_2013/article/details/21191289,这里不再赘述。

    元素的遍历

    用迭代器訪问vector元素

    #include <vector>
    #include <iostream>
    using namespace std;
    int main(void)
    {
    	vector<int> v;
    	v.push_back(42);
    	v.push_back(51);
    	v.push_back(69);
    	vector<int>::iterator i,iend;
    	iend=v.end();
    	int j;
    	for(i=v.begin(),j=0; i!=iend; i++,j++)    
    		cout<<"v[" << j << "] = " << *i<< endl;
    	return 0;
    }
    

    元素的插入

    iterator insert(iteratorpos, const T& x);//在迭代器pos所指的元素前面插入一个元素x

    #include <vector>
    #include <iostream>
    using namespace std; 
    int main(void)
    {
    	vector<int> v;
    	v.push_back(6);   
    	v.push_back(7);
    	v.push_back(8);
    	v.push_back(10);
    	v.insert(v.begin() + 3, 9);  //在元素的前面插入
    	v.insert(v.begin(), 5);      //插入为首元素
    	v.insert(v.end(), 11);       //插入为末元素
    	for(int i = 0; i < v.size(); i++)    
    		cout << "v[" << i << "] = " << v[i] << endl; 
    	return 0;
    }
    


    元素的删除

    1)iterator erase(iterator pos);//删除迭代器pos所指的元素

    2)iterator erase(iterator first, iterator last);//删除迭代区间[first,last)的全部元素

    #include <iostream>
    #include <vector>
    using namespace std;
    int main ()
    {
    	vector<int> myvector;
    	for (int i=1; i<=10; i++)
    		myvector.push_back(i);
    	//删除第个元素
    	myvector.erase (myvector.begin()+5);
    	//删除前个元素
    	myvector.erase (myvector.begin(),myvector.begin()+3);
    	cout << "myvector contains:";
    	for (unsigned i=0; i<myvector.size(); ++i)
    		cout << ' ' << myvector[i];
    	cout << '
    ';
    	return 0;
    }
    


    元素的反向遍历

    #include <vector>
    #include <iostream>
    using namespace std;   
    int main(void)
    {
    	vector<int> v;
    	v.push_back(1);
    	v.push_back(3);
    	v.push_back(5);
    	v.push_back(7);
    	v.push_back(9);
    	vector<int>::reverse_iterator ri,riend;
    	riend=v.rend();
    	for(ri=v.rbegin();ri!=riend;ri++)
    		cout << *ri << endl;
    	return 0;
    }
    


    Vector的交换

    void swap(vector& x); //两个vector容器的元素交换

    #include <iostream>
    #include <vector>
    using namespace std;
    int main ()
    {
    	vector<int> v1 (2,10);   //10 10
    	vector<int> v2 (3,30);  //30 30 30
    	cout << "v1 contains:";
    	for (unsigned i=0; i<v1.size(); i++)
    		cout << ' ' << v1[i];
    	cout << '
    ';
    	cout << "v2 contains:";
    	for (unsigned i=0; i<v2.size(); i++)
    		cout << ' ' << v2[i];
    	cout << '
    ';
    	v1.swap(v2);//交换
    	cout<<"交换后"<<endl;
    	cout << "v1 contains:";
    	for (unsigned i=0; i<v1.size(); i++)
    		cout << ' ' << v1[i];
    	cout << '
    ';
    	cout << "v2 contains:";
    	for (unsigned i=0; i<v2.size(); i++)
    		cout << ' ' << v2[i];
    	cout << '
    ';
    	return 0;
    }
    

    其它经常使用的函数

    1)bool empty();

    //推断vector容器是否为空。若容器没有一个元素则返回true。否则返回false

    2)size_type size();

    //当前vector容器的实际元素个数。

    3)size_typemax_size();

    //系统所同意的vector容器的最大元素个数。

    4)size_typecapacity();

    //当前可容纳vector元素的个数。

    5)reference front()

    //vector容器的首元素(引用),要求vector不为空。

    6)reference back();

    //返回vector容器的末元素(引用)。要求vector不为空。

    7)void pop_back();

    //删除末尾的一个容器元素。


    此为本人原创,转载请注明出处:http://blog.csdn.net/lsh_2013/article/details/46731331





  • 相关阅读:
    图像控件 ImageControl
    日期条控件 DateFieldControl
    日期选择器和日期条控件 DateChooserAndDateFieldControls
    计数器控件实例 NumericStepper
    树结构控件实例 TreeControl
    vue2.0leaflet
    关于工具类中@Autowired注入为NULL的问题记录
    zabbix_agentd重装后启动时IPC和共享内存段问题
    rsync如何不指定密码文件
    MySQL5.7 JSON类型及其相关函数的学习
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6817162.html
Copyright © 2020-2023  润新知