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

      • <bdo id='5LAwn'></bdo><ul id='5LAwn'></ul>
    1. <legend id='5LAwn'><style id='5LAwn'><dir id='5LAwn'><q id='5LAwn'></q></dir></style></legend>

      <small id='5LAwn'></small><noframes id='5LAwn'>

      1. 减少 stl 向量的容量

        时间:2023-09-15

            <tbody id='pBtW8'></tbody>
        1. <legend id='pBtW8'><style id='pBtW8'><dir id='pBtW8'><q id='pBtW8'></q></dir></style></legend>

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

                  本文介绍了减少 stl 向量的容量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  有没有办法减少向量的容量?

                  Is there a way to reduce the capacity of a vector ?

                  我的代码将值插入到一个向量中(事先不知道它们的编号),并且完成后,向量仅用于读取操作.

                  My code inserts values into a vector (not knowing their number beforehand), and when this finishes, the vectors are used only for read operations.

                  我想我可以创建一个新的向量,用大小做一个 .reseve() 并复制项目,但我真的不喜欢额外的复制操作.

                  I guess I could create a new vector, do a .reseve() with the size and copy the items, but I don't really like the extra copy operation.

                  PS:我不关心便携式解决方案,只要它适用于 gcc.

                  PS: I don't care for a portable solution, as long as it works for gcc.

                  推荐答案

                  std::vector<T>(v).swap(v);
                  

                  用另一个向量交换内容会交换容量.

                  Swapping the contents with another vector swaps the capacity.

                    std::vector<T>(v).swap(v); ==> is equivalent to 
                  
                   std::vector<T> tmp(v);    // copy elements into a temporary vector
                           v.swap(tmp);              // swap internal vector data
                  

                  Swap() 只会改变内部数据结构.

                  Swap() would only change the internal data structure.

                  这篇关于减少 stl 向量的容量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:向量擦除迭代器 下一篇:如何总结 C++ 向量的元素?

                  相关文章

                  最新文章

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

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

                    1. <tfoot id='Eilgc'></tfoot>

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

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