C++ 中的【vector学习】

    xiaoxiao2021-03-25  75

    本次只要是针对C++标准库(STL)中的向量Vector的学习,在C++中提供了一系列比较完善的标准库,通过对这些库的学习可以快速的实现算法的开发工作。

    先开一个标题,后期学习过程中随时添加新内容 Code:

    /* *本实验是学习向量vector的应用 主要实现动态数组的存储 *作者:att0206 *时间:2017/03/13 */ #include<vector> #include<iostream> using namespace std; void print_vector_info(const vector<int>& array) //通过结合模板定义一个vector类型的array 然后引用 { cout<<"Vector's capacity is "<< array.capacity()<< endl; cout<<"Vector's size is "<< array.size()<<endl; } /*class A{ public: A(){}; class B{ //B类是在A类中的,正是所谓的类中类 public: //如果实例化一个B类型的数据,则定义为:A::B b;此时就实例化了一个b了; B(){} }; }; */ int main(int argc,char** argv) { /* 这边是实现向coll数组中push数据 int arra1[10] = {0,1,2,3,4,5,22,7,8,'q'}; vector<int> coll; print_vector_info(coll); for(int i = 0;i<10;i++) { coll.push_back(arra1[i]);//向arral中去添加数组中的数 实现动态数组 } //访问数组中的元素 cout<<" "<<coll[6]<<endl; print_vector_info(coll); */ //这里实现在一个矩阵中push_back()数据,并且通过pop_back()弹出最后进入的数据 vector<int> array; vector<int>::iterator iter; //类中类 以“读写”模式遍历元素; vector<int>::const_iterator cite;//以“只读”模式遍历元素; array.push_back(11);//[11] array.push_back(22);//[11,22] array.push_back(33);//[11,22,33] iter[1] = 35; array.pop_back();//[11,22] iter = array.begin(); cout<<*iter<<endl; //使用指针访问运算符 for(iter = array.begin();iter!=array.end();++iter) //很经典的for循环用法, { cout<<"*iter is "<<*iter<<endl; } for(;;); return 0; }

    通过拷贝构造函数进一步加深对容器和迭代器的学习,其实C++语言还是相当严谨的,所以光看书或者视频是很难深入理解和应用的。每一次的提升都是自己对代码的敲击量上。只有多动手敲键盘才能将自己所想的与实际运行结果进行对比,这样才能更好地发现问题,并且解决问题!

    //主要结合vector针对容器的学习 从而对拷贝构造函数也进一步加深了解 #include<iostream> #include<string> #include<vector> #include<algorithm> using namespace std; class ID{ public: ID(string n_name,int n_score) { name = n_name; score = n_score; } ID(const ID& C) //拷贝构造函数 { name = C.name; score = C.score; } void show() { cout<<"name:"<<name<<"score:"<<score<<endl; } private: string name; int score; }; void showText() { cout<<"**********************************"<<endl; cout<<"**** Welcoming!     ****"<<endl; cout<<"**********************************"<<endl; } int main(int argc,char** argv) { showText(); vector<ID> AA; //申明一个ID类型的AA这个容器; vector<ID>::iterator iter; //利用迭代器进行遍历AA这个类 AA.push_back(ID("Wang",1)); //向容器里添加ID类型的数据 AA.push_back(ID("Chao",2)); AA.push_back(ID("Long",3)); AA.push_back(ID("SHNU",4)); for(iter = AA.begin();iter != AA.end();++iter) //指针进行从头开始访问容器,知道结束 { (*iter).show(); } //ID AA("Wang",100); //AA.show(); for(;;); return 0; } //第二种 /* class ID{ public: ID():name(""),score(0){} ID(string n,int s):name(n),score(s){} string name; int score; }; int main(int argc,char** argv) { vector<ID> ids; vector<ID>::iterator iter; ids.push_back(ID("Wang",1)); //使用了拷贝构造函数 //cout<<&ID::show<<endl; ids.push_back(ID("Chao",2)); ids.push_back(ID("Long",3)); ids.push_back(ID("SHNU",4)); cout<<" ***** "<<endl; for(iter = ids.begin();iter != ids.end();++iter) { cout<< (*iter).name<<" "<<(*iter).score<<endl; } for(;;); return 0; } */

    Output:

    转载请注明原文地址: https://ju.6miu.com/read-50398.html

    最新回复(0)