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

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

相关文章
|
9月前
|
安全
dapp链上合约代币质押项目分红系统开发稳定版/案例详情/功能步骤/源码版
In addition, the development of blockchain based DApp smart contracts also needs to consider the following requirements
|
缓存 安全 网络安全
Vpay钱包项目系统开发|Vpay钱包代币质押系统开发逻辑详情
 数据库技术在区块链交易中安全是一个区块链交易所的最重要的问题之一
|
9月前
|
供应链 算法 安全
LP链上质押合约代币项目系统开发|案例详情|指南方案
在这种情况下,所有的交易和持仓数据都被记录在区块链上,并且参与者可以在实时交易中进行交互,同时保持匿名性和安全性。
|
9月前
|
存储 区块链 数据库
NFT合约算力质押项目系统开发|指南详情
区块链的最重要特性是去中心化,它不依赖于任何中心机构或第三方信任
|
9月前
|
存储 安全 分布式数据库
BSC链DAPP质押合约代币系统开发|详情需求|指南方案
区块链的核心思想是将数据分散存储在多个节点上,通过加密算法和共识机制保证数据的安全性和可信度
|
9月前
|
存储 算法 区块链
DAPP质押合约代币项目模式系统开发案例
“去中心化”也是区块链的典型特征之一,它使用分布式存储和算力,整个网络节点的权利和义务是相同的
|
9月前
|
存储 算法 安全
DAPP合约代币质押模式系统开发|详情模式|方案设计
区块链是一种去中心化的分布式账本技术,它使用密码学方法保证了数据交换和记录的安全性和可信度。
|
9月前
|
人工智能 算法 安全
dapp质押合约代币分红模式系统开发|细节详情|方案设计
Web 3.0的发展仍面临一些挑战,例如,当前DApps的使用率仍然相对较低
|
9月前
|
存储 供应链 算法
dapp算力代币质押系统开发|合约方案|详情模式
区块链是支持智能合约执行并确保双方公平的技术
|
算法 数据管理 区块链
区块链合约代币质押项目系统开发模式详情
多链是一种新兴的区块链技术,其分片技术被称为“多链分片”