C++ 中求string和vector容器大小、长度

string:

string str("hello world");
str.size();
str.length();
strlen(str.c_str());
end(str) - begin(str)

固定容器大小的array:

sizeof(array)/sizeof(array)[0];
end(str) - begin(str);

vector:

vector是可变大小容器,vector 的容量大小,是指在不分配更多内存的情况下可以保存的最多元素个数,这时 可能有 20 个元素,也可能没有。vector 的大小是它实际所包含的元素个数,也就是有值的元素的个数。图 1 对此做了说明:

显然 vector 的大小不能超出它的容董。当大小等于容量时,增加一个元素就会导致更多内存的分配。对于一个 vector 对象来说,可以通过调用 size() 和 capacity() 函数来得到它的大小和容量。它们返回的是我们自己定义的无符号整型值。例如:

    std::vector<size_t> primes { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41 ,43 ,47 };
    
    std::cout << "The size is " << primes.size() << std::endl;
    std::cout << "The capacity is " << primes.capacity() << std::endl;
    primes.push_back(48);
    std::cout << "The size is " << primes.size() << std::endl;
    std::cout << "The capacity is " << primes.capacity() << std::endl;

输出语句输出的容器大小和容董都为 15,这是由初始化列表决定的。然而,如果用 push_back() 函数添加一个元素,然后再输出容器的大小和容量,这时大小变为 16,容量变为 30。当容器的大小等于容量时,容器每次增加多少容量,取决于算法的实现。一些实现可能会双倍地增加容量。

注:迭代器是个好东西,STL容器中可以用它算出大小

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值