容器算法迭代器初识

#include<iostream>
using namespace std;
#include<vector>
//vetor容器存放内置数据类型
void test01()
{
	//创建了一个vector容器,数组 
	vector<int> v;
	//向容器中插入数据
	v.push_back (10);//尾插 
	v.push_back (20);
	v.push_back (30);
	v.push_back (40);

    //通过迭代器访问容器中的数据
    //iterator 迭代器名称 
	//v.begin 起始迭代器  指向容器中的第一个元素 
	vector<int>::iterator itBegin = v.begin(); 
	vector<int>::iterator itEnd = v.end();
	//v.end 结束迭代器 指向容器中最后一个元素的下一个位置 
	
	//访问容器中的数据
	//第一种遍历方式
	while(itBegin != itEnd) {
		cout<<*itBegin<<endl;
		itBegin++;
	}
	 	
 } 
int main(){
	
	test01();
	system("pause");
	
}
#include<iostream>
using namespace std;
#include<vector>
//vetor容器存放内置数据类型
void test01()
{
	//创建了一个vector容器,数组 
	vector<int> v;
	//向容器中插入数据
	v.push_back (10);//尾插 
	v.push_back (20);
	v.push_back (30);
	v.push_back (40);

    //第二种遍历方式
	for(vector<int>::iterator it = v.begin();it!=v.end();it++)
	{
		cout<<*it<<endl;
	 } 
	 	
 } 
int main(){
	
	test01();
	system("pause");
	
}
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm> //标准算法头文件 
//vetor容器存放内置数据类型
void myPrint(int val)
{
	cout<<val<<endl;
}
void test01()
{
	//创建了一个vector容器,数组 
	vector<int> v;
	//向容器中插入数据
	v.push_back (10);//尾插 
	v.push_back (20);
	v.push_back (30);
	v.push_back (40);

    //第三种遍历方式   利用STL提供的遍历算法 
	for_each(v.begin(),v.end(),myPrint); 
	 	
 } 
int main(){
	
	test01();
	system("pause");
	
}

运行结果:

#include<iostream>
using namespace std;
#include<vector>
#include<string>
//vector容器中存放自定义数据类型
class Person{
public:
	Person(string name,int age)
	{
		this->m_Name = name;
		this->m_Age = age;
	}
	string m_Name;
	int m_Age;
}; 
void test01()
{
	//创建了一个vector容器,数组 
	vector<Person> v;
	Person p1("aaa",10);
	Person p2("bbb",20);
	Person p3("ccc",30);
	Person p4("ddd",40);
	Person p5("eee",50);
	
	//向容器中添加数据
	v.push_back(p1);
	v.push_back(p2);
	v.push_back(p3);
	v.push_back(p4);
	v.push_back(p5);
	//遍历容器中的数据
	for(vector<Person>::iterator it = v.begin();it!=v.end();it++)  
	 {
	 	//cout<<"姓名"<<(*it).m_Name<<"年龄" <<(*it).m_Age<<endl;
		cout<<"姓名"<<it->m_Name<<"年龄" <<it->m_Age<<endl; 
	 }
	 	
 } 
int main(){
	
	test01();
	system("pause");
	
}

 存放自定义数据类型的指针 :

#include<iostream>
using namespace std;
#include<vector>
#include<string>
//vector容器中存放自定义数据类型
class Person{
public:
	Person(string name,int age)
	{
		this->m_Name = name;
		this->m_Age = age;
	}
	string m_Name;
	int m_Age;
}; 
//存放自定义数据类型的指针 
void test02()
{
	//创建了一个vector容器,数组 
	vector<Person*> v;
	Person p1("aaa",10);
	Person p2("bbb",20);
	Person p3("ccc",30);
	Person p4("ddd",40);
	Person p5("eee",50);
	
	//向容器中添加数据
	v.push_back(&p1);
	v.push_back(&p2);
	v.push_back(&p3);
	v.push_back(&p4);
	v.push_back(&p5);
	//遍历容器中的数据
	for(vector<Person*>::iterator it = v.begin();it!=v.end();it++)  
	 {
		cout<<"姓名"<<(*it)->m_Name<<"年龄" <<(*it)->m_Age<<endl; 
	 }
	 	
 } 
int main(){
	
	test02();
	system("pause");
	
}

运行结果:

相关推荐

  1. 【python】(02)Iterator

    2024-02-01 01:24:02       21 阅读
  2. C++阶-反向的模拟实现

    2024-02-01 01:24:02       34 阅读
  3. 【C++】容器失效问题

    2024-02-01 01:24:02       31 阅读
  4. ·模式

    2024-02-01 01:24:02       30 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-01 01:24:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-01 01:24:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-01 01:24:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-01 01:24:02       20 阅读

热门阅读

  1. SpringBoot基于注解形式配置多数据源@DS

    2024-02-01 01:24:02       32 阅读
  2. MicroPython核心:编译器

    2024-02-01 01:24:02       42 阅读
  3. Vue-45、Vue中全局事件总线

    2024-02-01 01:24:02       32 阅读
  4. [云原生] Docker 安全

    2024-02-01 01:24:02       34 阅读
  5. 3D 转换

    3D 转换

    2024-02-01 01:24:02      30 阅读
  6. 蓝桥杯2024/1/31-----底层测试模板

    2024-02-01 01:24:02       32 阅读
  7. 关于我用AI编写了一个聊天机器人……(7)

    2024-02-01 01:24:02       41 阅读
  8. 继承和原型链

    2024-02-01 01:24:02       31 阅读