vector知识

Vector

做CF1574D的勾八题时候并不会用trie树,于是点开了tourist的代码开始研究,发现字里行间写满了vector,就搞一搞vector的知识,cpp primer和primer plus都看的费劲,随便整点把

基础知识

#include <bits/stdc++.h>
using namespace std;

vector <int> a, b, c;

void init() {
    int n;
    a.resize(n, -1);
    b.resize(n, 0);
    c.resize(n, numeric_limits<int>::max());
    // numeric_litmits<int>::max()为编译器支持的int类型的最大数据
}

int main() {
    vector <int> tmp = {1, 2, 3, 4, 5}; //c++98应该不支持{...}声明
    for (int i = 0; i < 10; i++) {
        tmp.push_back(i);
    }
    
    // vector可以用以下这三种方式遍历
    vector <int>::iterator it;
    for (it = tmp.begin(); it != tmp.end(); it++) {
        cerr << *it << ' ';
    }
    cerr << '\n';
    
    for (int i = 0; i < tmp.size(); i++) { // 使用小于号的原因:c++大部分容器都是左闭右开的
        cerr << a[i] << ' ';
    }
    cerr << '\n';
    
    for (auto it : tmp) {
        cerr << tmp[it] << ' ';
    }
    cerr << '\n';
    
    vector <int> arr(10, -1); // initialize an array of 10 -1
    arr.resize(5, 0); // resize the vector
    cout << arr.size() << ' ' << typeid(arr.size()).name() << endl;
    for (int i = 0; i < (int)arr.size(); i++) {
        cout << arr[i] << ' ';
    }

    /* arr.erase(arr.begin() + 3, arr.end()); delete all the element after the third element */
    sort (arr.begin(), arr.end());
    cerr << (int)(unique(arr.begin(), arr.end())-arr.begin()) << '\n';
    arr.erase(unique(arr.begin(), arr.end()), arr.end());
    return 0;
}
上一篇:jdk1.8中hashmap的扩容步骤resize


下一篇:【pyqt5+opencv】如何将大量图片合成一张图