网站作品怎么做,网站建设的论坛,网站建设中单页源码,企业网站制作哪家好1、容器可以嵌套容器
2、容器分为序列式容器和关联式容器
序列式容器#xff1a;容器的元素的位置是由进入容器时机和地点来决定
关联式容器#xff1a;容器已经有规则#xff0c;进入容器的元素的位置不是由进入容器时机和地点来决定 只与此容器的排列规则有关
3、迭代… 1、容器可以嵌套容器
2、容器分为序列式容器和关联式容器
序列式容器容器的元素的位置是由进入容器时机和地点来决定
关联式容器容器已经有规则进入容器的元素的位置不是由进入容器时机和地点来决定 只与此容器的排列规则有关
3、迭代器 理解为指针。实际迭代器是一个类。这个类封装一个指针 1、stl算法和数据结构分离
#includeiostream
using namespace std;//算法 负责统计某个数出现次数
int mycount1(int* a, int n,int value){int count 0;for (int i 0; i n; i){if (a[i] value)count;}return count;
}int main1() {int a[] { 0,4,7,23,1,9,4,5,15 };int n sizeof(a) / sizeof(a[0]);int value 4;cout mycount1(a, n, value) endl;
}int mycount(int* start, int* end, int value) {int count 0;/*for (; start ! end; start) {if (*start value)count;}*/while (start ! end){if (*start value)count;start;}return count;
}int main() {int arr[] { 0,4,7,23,1,9,4,5,15 };int* pBegin arr;int* pEnd (arr[sizeof(arr) / sizeof(int)]);int value 4;cout value出现次数 mycount(pBegin, pEnd, value) endl;
}2、stl helloworld
#includeiostream
#includevector
#includealgorithm
using namespace std;//STL 基本容器
void printVector(int v) { //传进来容器元素cout v ;
}
void test01() {//定义一个容器 并且指定这个容器存放的元素的数据类型是int//vector是队列式存储先进先出vectorint v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);//通过STL提供的for_each算法//容器提供迭代器//vectorint::iterator 所定义的迭代器类型vectorint::iterator pBegin v.begin();vectorint::iterator pEnd v.end();//容器中可能存放基础数据类型也可能存放自定义数据类型for_each(pBegin, pEnd, printVector);cout endl;
}//容器中存放自定义数据类型
class Person {
public:Person(int Age, int Id) :age(Age), id(Id) {}
public:int age;int id;
};void test02()
{vectorPerson v;Person p1(10, 1), p2(20, 2), p3(30, 3);v.push_back(p1);v.push_back(p2);v.push_back(p3);for (vectorPerson::iterator it v.begin(); it ! v.end(); it) {cout (*it).age (*it).id endl;}cout endl;}
void PrintPerson(Person* v) //Person* v 意思是Person类型的指针v只有用*v才能取到指针中的数据
{cout (*v).age (*v).id endl;
}//容器中存放Person类型指针 并且利用for_each打印
void test03()
{vectorPerson* v;Person p1(10, 1), p2(20, 2), p3(30, 3);v.push_back(p1);v.push_back(p2);v.push_back(p3);vectorPerson*::iterator pBegin v.begin();vectorPerson*::iterator pEnd v.end();cout for_each循环输出: endl;for_each(pBegin, pEnd, PrintPerson);cout for循环输出: endl;for (vectorPerson*::iterator it v.begin(); it ! v.end(); it) {//*it 存放的是一个Person类型的指针*(*t) 存放的是Person类型指针中的数据cout (**it).age (**it).id endl; }cout endl;}//容器中嵌套容器
void test04()
{vectorvectorint v;vectorint subv1,subv2;subv1.push_back(11);subv1.push_back(22);subv1.push_back(33);subv1.push_back(44);subv2.push_back(111);subv2.push_back(222);subv2.push_back(333);subv2.push_back(444);v.push_back(subv1);v.push_back(subv2);for (vectorvectorint::iterator it v.begin(); it ! v.end(); it) {for (vectorint::iterator itt (*it).begin(); itt ! (*it).end(); itt) {cout *itt ;}cout endl;}}
int main()
{cout -------------test01---------- endl;test01();cout -------------test02---------- endl;test02();cout -------------test03---------- endl;test03();cout -------------test04---------- endl;test04();return 0;
}
运行结果