c++中STL 关于map,set,vector的用法

 

一、vector

vector相当于是一个可以存放一个任意数据类型的一个容器,通过迭代器可以对其进行相应的操作,如下:

 1 vector<CString> arrTest;
 2 arrTest.push_back(L"你");
 3 arrTest.push_back(L"我");
 4 arrTest.push_back(L"他");
 5 
 6 vector<CString>::iterator iterArr = arrTest.begin();
 7 for (; iterArr != arrTest.end(); ++iterArr)
 8 {
 9 cout << CW2A(*iterArr) << endl;
10 }
11 
12 cout << CW2A(arrTest.at(1)) << endl;
13 
14 cout << endl;

输出:




二、map

map其实和vector很像,就是把由一个参数变为了两个参数,参考代码如下:

map<CString, CString> mapTest;
    mapTest[L"哈哈"] = L"呵呵";
    mapTest[L"学生"] = L"老师";
    mapTest[L"职工"] = L"领导";

    map<CString, CString>::iterator iterMap = mapTest.begin();
    for(; iterMap != mapTest.end(); ++iterMap)
        cout << CW2A(iterMap->first) << " " << CW2A(iterMap->second) << endl;

    iterMap = mapTest.find(L"学生");
    if(iterMap != mapTest.end())
    {
        cout << CW2A(iterMap->first) << " " << CW2A(iterMap->second) << endl;
    }
    cout << endl;

输出:

哈哈 呵呵
学生 老师
职工 领导
学生 老师

三、set

set就是一个集合,和我们学过的集合类似,这个集合默认是按顺序排列的,并且所有元素类型一致,并且不存在重复元素,实例代码如下:

void setExample()
{
    set<int> setTest;
    setTest.insert(2);
    setTest.insert(3);
    setTest.insert(3);
    setTest.insert(1);

    set<int>::iterator iterset = setTest.begin();
    for (; iterset != setTest.end(); ++iterset)
    {
        cout << *iterset << endl;
    }
    
    cout << *setTest.begin() << endl;
    cout << endl;
}

结果:

1
2
3
1

原作地址:https://www.cnblogs.com/leguandemomotou/p/7418307.html

猜你喜欢

转载自blog.csdn.net/qq_28734159/article/details/83511374