Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何正确地调整矢量的大小?

如何正确地调整矢量的大小?
EN

Stack Overflow用户
提问于 2012-12-05 04:13:43
回答 2查看 109关注 0票数 4

来自这个答案

您可能会遇到性能问题的一个地方是,从一开始就没有正确地调整矢量大小。

那么,当向量是类的属性时,如何正确地调整它的大小呢?是否有(最好的)方法来设置向量的容量(在初始化时)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-05 04:15:50

是的有。请参阅储备方法。它将要求向量的容量至少足以包含作为其参数发送的元素数。如果可以预测要存储在向量中的项目数量的上限,则可以在向量中保留该空间。

以上连结的例子-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// vector::reserve
#include <iostream>
#include <vector>

int main ()
{
    std::vector<int>::size_type sz;

    std::vector<int> foo;
    sz = foo.capacity();
    std::cout << "making foo grow:\n";
    for (int i=0; i<100; ++i) {
        foo.push_back(i);
        if (sz!=foo.capacity()) {
            sz = foo.capacity();
            std::cout << "capacity changed: " << sz << '\n';
        }
    }

    std::vector<int> bar;
    sz = bar.capacity();
    bar.reserve(100);   // this is the only difference with foo above
    std::cout << "making bar grow:\n";
    for (int i=0; i<100; ++i) {
        bar.push_back(i);

        // This block will execute only once
        if (sz!=bar.capacity()) {
            sz = bar.capacity();
            std::cout << "capacity changed: " << sz << '\n';
        }
    }

    return 0;
}

您将看到,随着向foo向量添加更多元素,其容量不断增加,但在第二种情况下,由于它已经保留了100个元素的空间,容量只会更改一次。

这里是一个正在运行的示例。

票数 2
EN

Stack Overflow用户

发布于 2012-12-05 04:21:56

考虑到类在构造函数期间被赋予一个值,明智的做法是存储向量的初始大小。当用户不断地扩展向量的大小,而不是首先设置矢量的基本长度时,就会出现效率低下的情况。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//consider the vector reads in chars from a string
VecClass::VecCalss(char * str)
{
    size_t LEN = strlen(str);
    Vect = std::vector<char>(LEN, '\0'); //start with the initial size of the char
}

设置初始大小可以减少程序中需要扩展向量的次数。

编辑:或者备用方法会做同样的事情,从来不知道有一个备用函数存在(非常方便!)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13723019

复制
相关文章
Visio如何调整锁定图像大小
在Visio中,比如模板中的UML类图,是不可调整大小的,这可能给我们设计图片带来了一些不便之处,如下图: 可以看到其边框是显示锁定状态无法修改的,当我们在左下角修改器长宽时,也会出现不可修改的情况。
码农阿宇
2018/04/18
4.5K0
Visio如何调整锁定图像大小
如何获得可调整的矢量统计图?
EMF全称“Enhanced MetaFile”,这种格式是微软为了弥补WMF (Windows Metafile Format)格式的不足而开发的一种扩展图元文件格式,属于矢量文件格式。
Mark Chen
2020/07/21
1.8K0
如何获得可调整的矢量统计图?
Mockplus:如何调整图标的大小和方向?
使用属性面板上的大小设置,可以很方便地调节图标大小。 调整方向还是通过属性面板来完成: 另外:有些图标调整了大小之后可以用做特别的用途哟,比如 Smile 图标调大后非常适合做圆形头像。
奔跑的小鹿
2018/03/15
1.8K0
Mockplus:如何调整图标的大小和方向?
Linux调整Swap大小
关闭swap swapoff -a 1.创建交换分区的文件:增加2G大小的交换分区 dd if=/dev/zero of=/var/swapfile bs=1M count=2048 2.设置交换文件 mkswap /var/swapfile 3.启用交换分区文件 swapon /var/swapfile 4.在/etc/fstab添加 echo '/var/swapfile swap swap defaults 0 0'>>/etc/fstab 5.检查 free -m
苦咖啡
2018/04/28
8.7K0
Vagrant 如何调整虚拟机的内存大小?
https://docs.vagrantup.com/v2/virtualbox/configuration.html
全栈程序员站长
2022/07/11
2.5K0
Linux下如何调整根目录的空间大小
      在使用CentOS版本linux系统的时候,发现根目录(/)的空间不是很充足,而其他目录空间有很大的空闲,所以本文主要是针对现在已有的空间进行调整。
拓荒者
2019/08/22
9.8K0
Linux下如何调整根目录的空间大小
调整JVM内存大小
JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能;Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。有以下几种方法可以选用:
MonroeCode
2018/01/12
3.2K0
ECharts散点图大小调整
在业务需求中,有时候会遇到ECharts散点图,现在记录一下,今天解决了一个小问题,ECharts散点图大小调整。
王小婷
2019/05/07
5.1K0
ECharts散点图大小调整
小程序checkbox调整大小
.cb{ transform: scale(0.6,0.6); } <view> <label class="lab" for="box1"> <checkbox value="v1" checked class="cb"/>复选框 </label> </view>
苦咖啡
2018/04/28
4.1K0
在 Linux 终端调整图像的大小
ImageMagick 是一个方便的多用途命令行工具,它能满足你所有的图像需求。ImageMagick 支持各种图像类型,包括 JPG 照片和 PNG 图形。
用户4988085
2021/09/14
4.5K0
VMware 中 Linux 调整分区大小
Precondition :VMware Player 中安装的Fedora 17 Linux 32bit,个人较久远的测试环境,安装时没有进行磁盘规划,默认20G空间(动态调整),安装在根/下。 Background :在上述环境中安装IBM DB2 Express-C 10.5(v10.5fp1_linuxia32_expc.tar.gz),安装时/tmp空间不足,无法安装。 Plan:需要进行磁盘扩容。考虑到使用VMware Player虚拟机。
gigiwangs
2019/02/28
6.9K0
InnoDB 缓冲池大小调整
从MySQL 5.7.5开始,我们可以动态修改InnoDB Buffer Pool的大小。这个新特性同时也引入了一个参数--innodb_buffer_pool_chunk_size,buffer pool会根据这个参数值的整数倍增加或减小。这个参数不是动态修改的,如果配置错误,可能会导致不想看到的结果。
田帅萌
2019/01/23
5.6K0
InnoDB 缓冲池大小调整
python 调整图片大小 脚本
infile = 'D:\original_img.jpg' outfile = 'D:\adjust_img.jpg' im = Image.open(infile) (x,y) = im.size #read image size x_s = 250 #define standard width y_s = y * x_s / x #calc height based on standard width out = im.resize((x_s,y_s),Image.ANTIALIAS) #resize image with high-quality out.save(outfile)
用户5760343
2022/05/13
2K0
HPUX调整LUN大小识别更改
磁盘阵列通常允许调整 LUN 的大小,如果增加 LUN 的大小,请执行以下步骤将附加空间合并到卷组中: 1、按照阵列说明增加 LUN 的大小。 2、运行 vgmodify 检测任何物理卷大小更改。还将报告卷组能否使用所有空间。 3、如果 vgmodify 报告,每个物理卷的最大物理盘区数 (max_pe) 太小,无法容纳新增的空     间,请使用带 -t 和 -n 选项的 vgmodify 确定 max_pe 的新值,如“修改卷组参数” 4、按照新的设置运行带 -r 选项的 vgmodify 检查这些值。 5、停用卷组。 6、提交 max_pe 的任何新值,运行不带 -r 选项的 vgmodify 更新物理卷信息。 7、激活卷组。运行 vgdisplay 和 pvdisplay 命令验证增加的空间是否可用。
星哥玩云
2022/06/30
1.5K0
Markdown 调整图片位置与大小
使用 Markdown 编写文档或博客时,经常需要对图片的位置与尺寸进行调整。 插入图片后,Markdown 表示图片的语法格式如下: ![图片描述](图片URL地址) 调整图片位置 居左 (1)方法一:添加位置标识。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200822014538211.png#pic_left) (2)方法二:嵌入 HTML 代码。 <div align="left"> <img src=https://img-blog.csdnimg.c
恋喵大鲤鱼
2020/08/24
43.3K0
Markdown 调整图片位置与大小
调整分区大小后分区丢失的数据
盘符不见是比较常见的数据恢复案例,需要注意,盘符不见后不要再重建新的分区。保护好文件丢失现场,可以最大程度的恢复出文件。具体的恢复方法看正文了解。
用户10127983
2023/04/09
1.8K0
ASP.NET Core中如何调整HTTP请求大小的几种方式
一般的情况下,我们都无需调用HTTP请求的大小,只有在上传一些大文件,或者使用HTTP协议写入较大的值时(如调用WebService)才可能会调用HTTP最大请求值。
yoyofx
2018/09/05
3.4K0
如何在 Linux 中减少/缩小 LVM 大小(逻辑卷调整)
当你在 LVM 中的磁盘空间耗尽时,你可以通过缩小现有的没有使用全部空间的 LVM,而不是增加一个新的物理磁盘,在卷组上腾出一些空闲空间。
用户1880875
2021/09/13
3.4K0
点击加载更多

相似问题

调整原子矢量的大小?

21

C++矢量调整大小

30

调整大小后的矢量容量

13

调整矢量的大小和保留

12

如何调整矢量大小(仅限行)

319
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文