028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

【C++STL容器】:vector存放数据以及存放自定义的数据类型-创新互联

前言

时不可以苟遇,道不可以虚行。

创新互联是一家专业提供曹妃甸企业网站建设,专注与网站建设、网站设计、H5页面制作、小程序制作等业务。10年已为曹妃甸众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

STL 中最常用的容器为:vector,暂且把它理解为我们之前学过的数组Array

一、创建一个vector容器(数组)
vectorv;

二、向容器中插入数据
v.push_back(10);
    v.push_back(20);
    v.push_back(30);
    v.push_back(40);

三、通过迭代器访问容器中的数据 1、利用起始和结束两个迭代器
vector::iterator itBegin = v.begin();   //起始迭代器,指向容器中第一个元素
    vector::iterator itEnd = v.end();       //结束迭代器,指向容器中最后一个元素的下一个位置
	
	while (itBegin != itEnd) { cout<< *itBegin<< endl;
         itBegin++;
     }

2、直接使用 for 循环
for (vector::iterator it = v.begin(); it != v.end(); it++) {cout<< *it<< endl;
    }

3、利用for_each遍历算法
void myPrint(int val) {cout<< val<< endl;
	}
	
	//最后一个参数为:传入函数名,回调作用
	for_each(v.begin(), v.end(), myPrint);
for_each(_InputIterator __first, _InputIterator __last, _Function __f)
    {  // concept requirements
	      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
	      __glibcxx_requires_valid_range(__first, __last);
	      for (; __first != __last; ++__first)
		  		__f(*__first);
	      return __f; // N.B. [alg.foreach] says std::move(f) but it's redundant.
    }

四、存储自定义数据类型
class Person {public:
    Person(string name, int age) {this->m_Name = name;
        this->m_Age = age;
    }

    string m_Name;
    int m_Age;
};

vectorv;

Person p1("a", 1);
    Person p2("b", 2);
    Person p3("n", 3);
    Person p4("m", 3);
    Person p5("u", 3);

v.push_back(p1);
    v.push_back(p2);
    v.push_back(p3);
    v.push_back(p4);
    v.push_back(p5);

for (vector::iterator it = v.begin(); it != v.end(); it++) {cout<< "姓名:"<< (*it).m_Name<< " 年龄:"<< (*it).m_Age<< endl;
	}
for (vector::iterator it = v.begin(); it != v.end(); it++) {cout<< "姓名:"<< it->m_Name<< " 年龄:"<< it->m_Age<< endl;
	}

五、存储自定义的指针数据类型
class Person {public:
    Person(string name, int age) {this->m_Name = name;
        this->m_Age = age;
    }

    string m_Name;
    int m_Age;
};

vectorv;

Person p1("a", 1);
    Person p2("b", 2);
    Person p3("n", 3);
    Person p4("m", 3);
    Person p5("u", 3);

v.push_back(&p1);
    v.push_back(&p2);
    v.push_back(&p3);
    v.push_back(&p4);
    v.push_back(&p5);

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站名称:【C++STL容器】:vector存放数据以及存放自定义的数据类型-创新互联
文章路径:http://www.tsicrk.com/article/ccgpis.html

其他资讯

让你的专属顾问为你服务

1.0426s