vector优化
C++的stdvector使用优化
#include<iostream>
#include<vector>
using namespace std;
class Vectex
{
private:
int x, y, z;
public:
Vectex(int x,int y,int z)
: x(x),y(y),z(z)
{
}
Vectex(const Vectex& vectex)
{
cout << "拷贝" << endl;
}
};
int main()
{
vector<Vectex>v;
v.push_back({ 1,2,3 });
v.push_back({ 4,5,6 });
v.push_back({ 7,8,9 });
}
- 执行6次拷贝
提前告诉它有多少数据
#include<iostream>
#include<vector>
using namespace std
class Vectex
{
private:
int x, y, z;
public:
Vectex(int x,int y,int z)
: x(x),y(y),z(z)
{
}
Vectex(const Vectex& vectex)
{
cout << "拷贝" << endl;
}
};
int main()
{
vector<Vectex>v;
v.reserve(3);//分配三个内存空间
v.push_back({ 1,2,3 });
v.push_back({ 4,5,6 });
v.push_back({ 7,8,9 });
}
- 执行3次拷贝
只传递构造函数参数列表
#include<iostream>
#include<vector>
using namespace std
class Vectex
{
private:
int x, y, z;
public:
Vectex(int x,int y,int z)
: x(x),y(y),z(z)
{
}
Vectex(const Vectex& vectex)
{
cout << "拷贝" << endl;
}
};
int main()
{
vector<Vectex>v;
v.reserve(3);
v.emplace_back( 1,2,3 );
v.emplace_back( 4,5,6 );
v.emplace_back( 7,8,9 );
}
- 执行了0次拷贝
vector优化的更多相关文章
- 使用std::vector优化点云动画显示一例
1. 准备 使用std::vector应该知道几点: (1)内存连续的容器,有点像数组 (2)与std::list相比,插入和删除元素比较慢- 因为数据迁移 (3)添加元素可能会引发内存分配和数据迁移 ...
- POJ-3159(差分约束+Dijikstra算法+Vector优化+向前星优化+java快速输入输出)
Candies POJ-3159 这里是图论的一个应用,也就是差分约束.通过差分约束变换出一个图,再使用Dijikstra算法的链表优化形式而不是vector形式(否则超时). #include< ...
- 最短路问题(dijkstral 算法)(优化待续)
迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法.是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题.迪杰斯特拉算法主要特点是以起始点为中心向 ...
- vector性能调优之resize与reserve
vector的resize与reserve reserve()函数为当前vector预留至少共容纳size个元素的空间.(译注:实际空间可能大于size) resize() 函数( void resi ...
- HDU 5001 概率DP || 记忆化搜索
2014 ACM/ICPC Asia Regional Anshan Online 给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率 概率DP 測 ...
- CF 375D. Tree and Queries加强版!!!【dfs序分块 大小分类讨论】
传送门 题意: 一棵树,询问一个子树内出现次数$\ge k$的颜色有几种,Candy?这个沙茶自带强制在线 吐槽: 本来一道可以离散的莫队我非要强制在线用分块做:上午就开始写了然后发现思路错了...: ...
- C++_STL基础案例
C++ C++三种容器:list.vector和deque的区别:https://blog.csdn.net/gogokongyin/article/details/51178378 一.容器 小常识 ...
- [CSP-S模拟测试]:旋转子段(数学)
题目描述 $ZYL$有$N$张牌编号分别为$1,2,...,N$.他把这$N$张牌打乱排成一排,然后他要做一次旋转使得旋转后固定点尽可能多.如果第$i$个位置的牌的编号为$i$,我们就称之为固定点.旋 ...
- Tarjan入门
Tarjan系列!我愿称Tarjan为爆搜之王! 1.Tarjan求LCA 利用并查集在一遍DFS中可以完成所所有询问.是一种离线算法. 遍历到一个点时,我们先将并查集初始化,再遍历完一个子树之后,将 ...
- paper 5:支持向量机系列二: Support Vector —— 介绍支持向量机目标函数的 dual 优化推导,并得出“支持向量”的概念。
paper 4中介绍了支持向量机,结果说到 Maximum Margin Classifier ,到最后都没有说“支持向量”到底是什么东西.不妨回忆一下上次最后一张图: 可以看到两个支撑着中间的 ga ...
随机推荐
- win32 - 创建带有标准阴影的无边框窗口
这个框框好像删不掉,就先放这边吧... #define WIN32_LEAN_AND_MEAN #include <unknwn.h> #include <windows.h&g ...
- win32-创建透明的图片按钮
// Test_CustomButton.cpp : Defines the entry point for the application. // #include "framework. ...
- 标准运算符替代函数之operator模块
# 官网参考示例地址 https://docs.python.org/zh-cn/3/library/operator.html # operator模块提供了一套与python的内置的运算符对应的高 ...
- django中一些快捷函数
1.get_object_or_404() 接收两个参数,参数1为模型类,参数2为查询参数 查询到对象则返回对象,查询不到则返回http404,但是不会返回模型的DoesNotExist异常 示例: ...
- win终端利器-Cmder的安装使用
cmder 官网:https://cmder.app/ 安装 直接选择full版本下载,完成后解压即可 启动 直接双击Cmder.exe 如果每次都进入到 Cmder 解压目录双击 Cmder.exe ...
- Ubuntu如何卸载mysql
首先在终端中查看MySQL的依赖项:dpkg --list|grep mysql 卸载: sudo apt-get remove mysql-common 卸载:sudo apt-get autore ...
- 在Windows环境中配置使用我们搭建的DNS服务器
1.修改网卡的设置,首选DNS用我们自己的 2.在命令行中测试 专业的nslookup 3.已知的问题 每次在DNS服务器的web界面中,修改了解析,必须用docker restart dns命令,把 ...
- 微信小程序:接手项目,修bug
好家伙, 问题描述如下: 小程序主界面,选择快速上传会议记录 选择快速 其中,没有2022-2023第二学期,所以,新的会议记录无法上传 于是,我自愿修复这个bug 由于我们没有产品文档 我只能由 ...
- Nebula Operator 云上实践
本文首发于 Nebula Graph Community 公众号 嗨,大家好!Nebula Operator 开源也有一段时间了,之前也有一篇相关的博客介绍,但是实践相关的博客却还没有,现在: 它来了 ...
- Nebula Graph 1.0 Release Note
Nebula Graph 1.0 发布了.作为一款开源分布式图数据库,Nebula Graph 1.0 版本旨在提供一个安全.高可用.高性能.具有强表达能力的查询语言的图数据库. 基本功能 DDL & ...