且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

STL - 容器 - vector简单应用

更新时间:2022-07-03 12:38:56

VectorTest.cpp

#include <vector>
#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>
#include "VectorTest.h"

using namespace std;

void VectorTest::simpleOperation()
{
    // create empty vector for strings
    vector<string> sentence;

    // reserve memory for five elements to avoid reallocation
    sentence.reserve(5);

    // append some elements
    sentence.push_back("Hello,");
    sentence.insert(sentence.end(), { "how", "are", "you", "?" });

    // print elements separated with spaces
    copy(sentence.cbegin(), sentence.cend(),
        ostream_iterator<string>(cout, " "));
    cout << endl;

    // print "technical data"
    cout << "  max_size(): " << sentence.max_size() << endl;
    cout << "  size():     " << sentence.size() << endl;
    cout << "  capacity(): " << sentence.capacity() << endl;

    // swap second and fourth element
    swap(sentence[1], sentence[3]);

    // insert element "always" before element "?"
    sentence.insert(find(sentence.begin(), sentence.end(), "?"),
        "always");

    // assign "!" to the last element
    sentence.back() = "!";

    // print elements separated with spaces
    copy(sentence.cbegin(), sentence.cend(),
        ostream_iterator<string>(cout, " "));
    cout << endl;

    // print some "technical data" again
    cout << "  size():     " << sentence.size() << endl;
    cout << "  capacity(): " << sentence.capacity() << endl;

    // delete last two elements
    sentence.pop_back();
    sentence.pop_back();
    // shrink capacity (since C++11)
    sentence.shrink_to_fit();

    // print some "technical data" again
    cout << "  size():     " << sentence.size() << endl;
    cout << "  capacity(): " << sentence.capacity() << endl;
}

void VectorTest::run()
{
    printStart("simpleOperation()");
    simpleOperation();
    printEnd("simpleOperation()");
}

运行结果:

---------------- simpleOperation(): Run Start ----------------
Hello, how are you ?
max_size(): 153391689
size(): 5
capacity(): 5
Hello, you are how always !
size(): 6
capacity(): 7
size(): 4
capacity(): 4
---------------- simpleOperation(): Run End ----------------