欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

C++STL复习

来源:本站整理 作者:佚名 时间:2017-08-17 TAG: 我要投稿

#include<iostream>
#include<vector>
#include<string>
#include
using namespace std;
 
void printvector(int val)
{
    cout << val << " ";
}
 
void test1()
{
    vector<int>v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    v.push_back(4);
    v.push_back(5);
    //每一个容器都有自己的迭代器, 迭代器用于遍历容器
    //v.begin 返回一个迭代器 指向容器的第一个元素
    //v.end()返回一个迭代器,指向容器的最后一个元素的下一个位置
    //vector<int>::iterator pBegin = v.begin();可以这样写 根据c++11新特性 可以用下面的写法:
    auto pBegin = v.begin();
    auto pEnd = v.end();
    //遍历
    while (pBegin != pEnd)
    {
        cout << *pBegin << endl;
        pBegin++;
    }
    printf("----------\n");
    for (auto it = v.begin(); it != v.end(); it++)
    {
        cout << *it << endl;
    }
    //for_each函数循环将容器中的元素传递给函数对象, 通过函数对象的operator()的具体实现来执行相应操作
    for_each(v.begin(), v.end(), printvector);
}
 
//容器存放自定义的数据类型
class Person
{
    //public可以被类外成员访问
    //private可以被类成员访问和友元访问不能被类外成员访问
    //protected可以被子类对象访问 不能在类外访问
public:
    Person(string name, int age)
    {
        mName = name;
        mAge = age;
    }
public:
    string mName;
    int mAge;
};
//容器存放指针
void test2()
{
    vector<person>vp;
    Person p1("aaaa", 20);
    Person p2("bbbb", 30);
    Person p3("cccc", 40);
    Person p4("dddd", 50);
    Person p5("eeee", 60);
    Person p6("ffff", 70);
    Person p7("aaaa", 20);
 
    //添加元素
    vp.push_back(p1);
    vp.push_back(p2);
    vp.push_back(p3);
    vp.push_back(p4);
    vp.push_back(p5);
    vp.push_back(p6);
    vp.push_back(p7);
 
    //遍历
    for (auto it = vp.begin(); it != vp.end(); it++)
    {
        cout << "name = " << (*it).mName << " age = " << (*it).mAge << endl;
    }
}
 
//容器存放容器
void test3()
{
    vector<int>v1;
    vector<int>v2;
    vector<int>v3;
    vector<int>v4;
 
    for (int i = 0; i < 4; i++)
    {
        v1.push_back(1 + i);
        v1.push_back(2 + i);
        v1.push_back(3 + i);
        v1.push_back(4 + i);
    }
    vector<vector<int>>v;
    v.push_back(v1);
    v.push_back(v2);
    v.push_back(v3);
    v.push_back(v4);
    //遍历
    for (auto it = v.begin(); it != v.end(); it++)
    {
        for (auto vit = (*it).begin(); vit != (*it).end(); vit++)
        {
            cout << *vit << " ";
        }
        cout << endl;
    }
}
 
void test4()
{
    string s1;//创建空字符串,调用无参构造函数
    string s2(s1);//拷贝构造
    const char *str = "hello";
    string s4(str);

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载