• <i id='hSrvg'><tr id='hSrvg'><dt id='hSrvg'><q id='hSrvg'><span id='hSrvg'><b id='hSrvg'><form id='hSrvg'><ins id='hSrvg'></ins><ul id='hSrvg'></ul><sub id='hSrvg'></sub></form><legend id='hSrvg'></legend><bdo id='hSrvg'><pre id='hSrvg'><center id='hSrvg'></center></pre></bdo></b><th id='hSrvg'></th></span></q></dt></tr></i><div id='hSrvg'><tfoot id='hSrvg'></tfoot><dl id='hSrvg'><fieldset id='hSrvg'></fieldset></dl></div>

  • <small id='hSrvg'></small><noframes id='hSrvg'>

      • <bdo id='hSrvg'></bdo><ul id='hSrvg'></ul>
      <legend id='hSrvg'><style id='hSrvg'><dir id='hSrvg'><q id='hSrvg'></q></dir></style></legend>
    1. <tfoot id='hSrvg'></tfoot>

        清除向量会影响其容量吗?

        时间:2023-09-15

          <small id='F3TsC'></small><noframes id='F3TsC'>

        1. <tfoot id='F3TsC'></tfoot>
              <tbody id='F3TsC'></tbody>
              <legend id='F3TsC'><style id='F3TsC'><dir id='F3TsC'><q id='F3TsC'></q></dir></style></legend>
                <i id='F3TsC'><tr id='F3TsC'><dt id='F3TsC'><q id='F3TsC'><span id='F3TsC'><b id='F3TsC'><form id='F3TsC'><ins id='F3TsC'></ins><ul id='F3TsC'></ul><sub id='F3TsC'></sub></form><legend id='F3TsC'></legend><bdo id='F3TsC'><pre id='F3TsC'><center id='F3TsC'></center></pre></bdo></b><th id='F3TsC'></th></span></q></dt></tr></i><div id='F3TsC'><tfoot id='F3TsC'></tfoot><dl id='F3TsC'><fieldset id='F3TsC'></fieldset></dl></div>
                  <bdo id='F3TsC'></bdo><ul id='F3TsC'></ul>

                • 本文介绍了清除向量会影响其容量吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我实例化一个 std::vector foo(1000).

                  foo.size() 现在是 1000,foo.capacity() 也是 1000.

                  foo.size() is now 1000 and foo.capacity() is also 1000.

                  如果我用 foo.clear() 清除向量,size() 现在是 0,但是 capacity() 是什么>?标准对此有任何说明吗?

                  If I clear the vector with foo.clear(), the size() is now 0, but what is the capacity()? Does the standard say anything about that?

                  推荐答案

                  不,它没有.向量的容量永远不会减少.这不是标准规定的,但在 VC++ 和 g++ 的标准库实现中都是如此.为了将容量设置为刚好适合大小,请使用著名的交换技巧

                  No, it doesn't. The capacity of a vector never decreases. That isn't mandated by the standard but it's so both in standard library implementations of VC++ and g++. In order to set the capacity just enough to fit the size, use the famous swap trick

                  vector<T>().swap(foo);
                  

                  在 C++11 标准中,你可以更明确地做到这一点:

                  In C++11 standard, you can do it more explicitly:

                  foo.shrink_to_fit();
                  

                  这篇关于清除向量会影响其容量吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:std::vector emplace_back 可以从向量本身的元素复制构 下一篇:原始 new[]/delete[] 与 std::vector 的优化

                  相关文章

                  最新文章

                    <small id='j7wMG'></small><noframes id='j7wMG'>

                    <tfoot id='j7wMG'></tfoot>
                    <i id='j7wMG'><tr id='j7wMG'><dt id='j7wMG'><q id='j7wMG'><span id='j7wMG'><b id='j7wMG'><form id='j7wMG'><ins id='j7wMG'></ins><ul id='j7wMG'></ul><sub id='j7wMG'></sub></form><legend id='j7wMG'></legend><bdo id='j7wMG'><pre id='j7wMG'><center id='j7wMG'></center></pre></bdo></b><th id='j7wMG'></th></span></q></dt></tr></i><div id='j7wMG'><tfoot id='j7wMG'></tfoot><dl id='j7wMG'><fieldset id='j7wMG'></fieldset></dl></div>

                        <bdo id='j7wMG'></bdo><ul id='j7wMG'></ul>

                      <legend id='j7wMG'><style id='j7wMG'><dir id='j7wMG'><q id='j7wMG'></q></dir></style></legend>