vector 基础2

size         :返回有效元素个数

max_size     :返回 vector 支持的最大元素个数

resize       :改变有效元素的个数

capacity      :返回当前可使用的最大元素内存块数(即存储容量)

empty       :判断是否为空

reserve       :请求改变存储容量

shrik_to_fit     :请求移除未使用的存储空间

std::vector<int> foo;
    for (int i = 0; i<100; i++) foo.push_back(i);
    std::cout << "size: " << (int)foo.size() << '\n';
    std::cout << "capacity: " << (int)foo.capacity() << '\n';
    std::cout << "max_size: " << (int)foo.max_size() << '\n';
    foo.resize(5);
    foo.resize(8, 100);
    foo.resize(12);
    for (int i = 0; i < foo.size(); i++)
        std::cout << ' ' << foo[i];
    std::cout << std::endl;

    int sum(0);
    while (!foo.empty())
    {
        sum += foo.back();
        foo.pop_back();
    }
    std::cout << "total: " << sum << '\n';

    foo.reserve(200); //设置最小容量,返回值大于等于这个值
    std::cout << "capacity: " << (int)foo.capacity() << '\n'; //200,如果设置100,这里是141

    foo.resize(5);
    foo.shrink_to_fit(); //请求移除不使用的空间
    std::cout << "capacity: " << (int)foo.capacity() << '\n'; //5

[] at

front    访问第一个元素

back    访问最后一个元素

data    返回当前向量内部数组的指针

#include <iostream>
#include <vector>

int main()
{
    std::vector<int> foo(5);
    int* p = foo.data();
    *p = 10;
    ++p;
    *p = 20;
    p[2] = 100;
    std::cout << "foo.front() is now " << foo.front() << std::endl;
    std::cout << "foo:";
    for (unsigned i = 0; i<foo.size(); ++i)
        std::cout << ' ' << foo[i];
    std::cout << std::endl;

    return 0;
}

 

原文链接: https://www.cnblogs.com/yuguangyuan/p/5845030.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    vector 基础2

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/398212

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月11日 上午9:57
下一篇 2023年4月11日 上午9:57

相关推荐