21C++ STL forward_list 单向链表

一些基本操作

#include<iostream>
using namespace std;

template <typename T>
void show(const T& a){
	for(auto i = a.begin(); i != a.end(); i ++)
		cout << *i << ' ';
	cout << endl;
}
int main(){
	forward_list <int> a;
	//单向链表只能push_front 从头部插入 
	a.push_front(4);
	a.push_front(3);
	a.push_front(1);
	a.push_front(2);
	a.push_front(0);
	show( a); 
	
	a.push_front(0);
	show( a);
	
	a.remove( 0);//删除值为0的所有元素 
	show( a);
	
	a.sort();// 默认降序排序 
	show( a);
}
在这里插入代码片
在 Oracle Database 21c 中,您可以使用 DBMS_CRYPTO 包对数据库中的数据进行加密和解密。下面是一个使用 DBMS_CRYPTO 包进行加密和解密的示例: 1. 创建一个测试表: ```sql CREATE TABLE test_table ( id NUMBER, data VARCHAR2(100) ); ``` 2. 向测试表中插入一些数据: ```sql INSERT INTO test_table VALUES (1, 'Hello, world!'); INSERT INTO test_table VALUES (2, 'This is a test.'); ``` 3. 使用 DBMS_CRYPTO 包对数据进行加密: ```sql DECLARE l_key_raw RAW(128) := utl_raw.cast_to_raw('my_secret_key'); l_data_raw RAW(2000); l_encrypted_raw RAW(2000); BEGIN FOR r IN (SELECT id, utl_raw.cast_to_raw(data) AS data_raw FROM test_table) LOOP l_data_raw := r.data_raw; l_encrypted_raw := dbms_crypto.encrypt( src => l_data_raw, typ => dbms_crypto.des_cbc_pkcs5, key => l_key_raw ); UPDATE test_table SET data = utl_raw.cast_to_varchar2(l_encrypted_raw) WHERE id = r.id; END LOOP; END; ``` 上面的代码将使用 DES 算法对 test_table 表中的数据进行加密,并将加密后的数据保存回表中。 4. 使用 DBMS_CRYPTO 包对数据进行解密: ```sql DECLARE l_key_raw RAW(128) := utl_raw.cast_to_raw('my_secret_key'); l_data_raw RAW(2000); l_decrypted_raw RAW(2000); BEGIN FOR r IN (SELECT id, utl_raw.cast_to_raw(data) AS data_raw FROM test_table) LOOP l_data_raw := r.data_raw; l_decrypted_raw := dbms_crypto.decrypt( src => l_data_raw, typ => dbms_crypto.des_cbc_pkcs5, key => l_key_raw ); UPDATE test_table SET data = utl_raw.cast_to_varchar2(l_decrypted_raw) WHERE id = r.id; END LOOP; END; ``` 上面的代码将使用 DES 算法对 test_table 表中的数据进行解密,并将解密后的数据保存回表中。 需要注意的是,在使用 DBMS_CRYPTO 包对数据进行加密和解密时,需要使用正确的密钥和算法,并且需要遵循最佳实践,确保数据的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值