关于代币质押合约系统技术开发功能详情讲解

简介: map自带的.clear()函数会清空map里存储的所有内容,但如果map值存储的是指针,则里面的值不会被清空,会造成内存泄漏,所以值为指针的map必须用迭代器清空。

一、map值存储的是指针

map自带的.clear()函数会清空map里存储的所有内容,但如果map值存储的是指针,则里面的值不会被清空,会造成内存泄漏,所以值为指针的map必须用迭代器清空。

erase迭代删除

std::map test_map;

HHH* h1 = new HHH;

HHH* h2 = new HHH;

test_map[0] = h1;

test_map[1] = h2;

// 删除

std::map::iterator iter;

for (iter = test_map.begin(); iter != test_map.end()😉

{

delete iter->second;

iter->second = nullptr;

// 删除迭代器元素先加加再删,否则迭代器失效程序崩溃!!!(必须iter++不可以++iter)

test_map.erase(iter++);

}

clear统一删除

std::map test_map;

HHH* h1 = new HHH;

HHH* h2 = new HHH;

test_map[0] = h1;

test_map[1] = h2;

// 删除

std::map::iterator iter;

for (iter = test_map.begin(); iter != test_map.end()😉

{

delete iter->second;

iter->second = nullptr;

// 删除迭代器元素先加加再删,否则迭代器失效程序崩溃!!!(必须iter++不可以++iter)

iter++;

}

test_map.clear();

二、map值存储的不是指针

如果值里面存的是值而不是指针的话直接clear()即可。

std::map test_map;

test_map[0] = 0;

test_map[1] = 0;

// 删除

test_map.clear();

三、map中存储的是智能指针

若是采用了智能指针,则无需单独delete,智能指针,会自动释放内存

相关文章
|
6月前
|
存储 区块链 数据库
NFT合约算力质押项目系统开发|指南详情
区块链的最重要特性是去中心化,它不依赖于任何中心机构或第三方信任
|
存储 安全
币安交易所对接staking接口质押赎回ETH的合约代码开发详情
// 质押ETH function stakeETH(uint256 _stakeAmount) public payable returns (bool) { require(_stakeAmount > 0); require(msg.value == _stakeAmount);
|
缓存 安全 网络安全
Vpay钱包项目系统开发|Vpay钱包代币质押系统开发逻辑详情
 数据库技术在区块链交易中安全是一个区块链交易所的最重要的问题之一
|
6月前
|
存储 算法 安全
DAPP合约代币质押模式系统开发|详情模式|方案设计
区块链是一种去中心化的分布式账本技术,它使用密码学方法保证了数据交换和记录的安全性和可信度。
|
6月前
|
人工智能 算法 安全
dapp质押合约代币分红模式系统开发|细节详情|方案设计
Web 3.0的发展仍面临一些挑战,例如,当前DApps的使用率仍然相对较低
|
6月前
|
存储 供应链 算法
dapp算力代币质押系统开发|合约方案|详情模式
区块链是支持智能合约执行并确保双方公平的技术
|
6月前
|
区块链
DAPP合约代币博饼交易质押模式系统开发|详情方案|规则明细
智能合约是什么?它是近年来随着区块链技术的发展而崭露头角的一个概念
|
11月前
|
算法 数据管理 区块链
区块链合约代币质押项目系统开发模式详情
多链是一种新兴的区块链技术,其分片技术被称为“多链分片”
|
12月前
|
供应链 安全 区块链
区块链钱包合约代币质押系统开发(模式详情)
一组条件在时间的推移中不可能一直正确的,而智能合约是不可变的,更新当前的预编程条件几乎是不可能的
|
存储 安全 算法
现货期权合约交易所系统开发|详情规则|源码部署
区块链去中心化是指区块链系统不依赖于任何一个中心化的机构或者个人来维护和运行