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

简介: 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合约算力质押项目系统开发|指南详情
区块链的最重要特性是去中心化,它不依赖于任何中心机构或第三方信任
|
缓存 安全 网络安全
Vpay钱包项目系统开发|Vpay钱包代币质押系统开发逻辑详情
 数据库技术在区块链交易中安全是一个区块链交易所的最重要的问题之一
|
6月前
|
存储 算法 安全
DAPP合约代币质押模式系统开发|详情模式|方案设计
区块链是一种去中心化的分布式账本技术,它使用密码学方法保证了数据交换和记录的安全性和可信度。
|
6月前
|
人工智能 算法 安全
dapp质押合约代币分红模式系统开发|细节详情|方案设计
Web 3.0的发展仍面临一些挑战,例如,当前DApps的使用率仍然相对较低
|
6月前
|
存储 供应链 算法
dapp算力代币质押系统开发|合约方案|详情模式
区块链是支持智能合约执行并确保双方公平的技术
|
11月前
|
算法 数据管理 区块链
区块链合约代币质押项目系统开发模式详情
多链是一种新兴的区块链技术,其分片技术被称为“多链分片”
|
6月前
|
区块链
DAPP合约代币博饼交易质押模式系统开发|详情方案|规则明细
智能合约是什么?它是近年来随着区块链技术的发展而崭露头角的一个概念
|
6月前
|
安全 区块链
合约跟单/合约交易/量化交易/永续合约/秒合约/系统开发详情案例
区块链的最重要特性是去中心化,它不依赖于任何中心机构或第三方信任。
|
供应链 安全 区块链
区块链钱包合约代币质押系统开发(模式详情)
一组条件在时间的推移中不可能一直正确的,而智能合约是不可变的,更新当前的预编程条件几乎是不可能的
|
存储 区块链 UED
DAPP流动性质押系统开发方案与详情|DAPP合约案例
区块链的另一个固有挑战是其确定性。确定性本质意味着一旦一个块被添加到区块链中,它就无法更改,并且任何智能合约执行的结果都是可预测的和一致的。
下一篇
无影云桌面