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

简介: 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,智能指针,会自动释放内存

相关文章
|
4月前
|
存储 区块链 数据库
NFT合约算力质押项目系统开发|指南详情
区块链的最重要特性是去中心化,它不依赖于任何中心机构或第三方信任
量化交易一键跟单交易平台开发合约源码定制详情
target_position = self.broker.get_position('BTC') + order.amount self.broker.place_order('BTC', order.amount) self.settings['target_position'] = target_position
|
缓存 安全 网络安全
Vpay钱包项目系统开发|Vpay钱包代币质押系统开发逻辑详情
 数据库技术在区块链交易中安全是一个区块链交易所的最重要的问题之一
|
4月前
|
存储 算法 安全
DAPP合约代币质押模式系统开发|详情模式|方案设计
区块链是一种去中心化的分布式账本技术,它使用密码学方法保证了数据交换和记录的安全性和可信度。
|
4月前
|
人工智能 算法 安全
dapp质押合约代币分红模式系统开发|细节详情|方案设计
Web 3.0的发展仍面临一些挑战,例如,当前DApps的使用率仍然相对较低
|
4月前
|
存储 供应链 算法
dapp算力代币质押系统开发|合约方案|详情模式
区块链是支持智能合约执行并确保双方公平的技术
|
4月前
|
区块链
DAPP合约代币博饼交易质押模式系统开发|详情方案|规则明细
智能合约是什么?它是近年来随着区块链技术的发展而崭露头角的一个概念
|
9月前
|
算法 数据管理 区块链
区块链合约代币质押项目系统开发模式详情
多链是一种新兴的区块链技术,其分片技术被称为“多链分片”
|
4月前
|
算法 安全 区块链
BRC20铭文合约代币质押模式系统开发|规则详情
区块链的最重要特性是去中心化,它不依赖于任何中心机构或第三方信任
|
11月前
|
存储 分布式计算 大数据
DAPP质押合约代币公排互助系统开发详情讲解
区块链和大数据都是新一代信息技术,它们的概念不同,应用领域也有着一定的区别