for (auto str : list2) { if (hash.find(str) == hash.end()) { list2.erase(str); } }为什么会出错?
时间: 2024-02-10 19:15:08 浏览: 21
这段代码在遍历 `list2` 的同时,对其进行了删除操作,这会导致迭代器失效,从而出现未定义行为。
正确的做法是使用迭代器进行删除操作。修改后的代码如下:
```cpp
for (auto it = list2.begin(); it != list2.end();)
{
if (hash.find(*it) == hash.end())
{
it = list2.erase(it);
}
else
{
++it;
}
}
```
这里使用了迭代器 `it` 对 `list2` 进行遍历和删除操作。如果要删除当前元素,使用 `erase()` 函数删除,并将迭代器指向下一个元素;否则,将迭代器指向下一个
相关问题
ImportError: No module named Crypto.Hash
如果在使用Kali Linux时遇到“ImportError: No module named Crypto.Hash”错误,这意味着您缺少所需的加密模块。
要解决此问题,请按照以下步骤进行操作:
1. 确保已安装所需的软件包和依赖项。在终端中以root用户身份运行以下命令:
```
sudo apt update
sudo apt install build-essential libssl-dev libffi-dev python3-dev
```
2. 安装Python的pip工具(如果尚未安装):
```
sudo apt install python3-pip
```
3. 使用pip工具安装Crypto模块:
```
pip3 install pycryptodome
```
4. 安装完成后,尝试导入Crypto.Hash模块,看看是否仍然出现同样的错误。
```
python3
>>> from Crypto.Hash import SHA256
```
以上步骤应该能够解决“ImportError: No module named Crypto.Hash”错误,并成功导入Crypto.Hash模块。如果问题仍然存在,请确保正确安装了所需的软件包和依赖项,并重试安装Crypto模块。
hash_val = str.encode(hash_obj.hexdigest())
这行代码的作用是将哈希对象 `hash_obj` 的十六进制摘要转换为字节串,并将其编码为指定字符集的字符串。
具体来说,`hash_obj.hexdigest()` 返回哈希对象的十六进制摘要,即一个由十六进制字符组成的字符串。然后,`str.encode()` 将该字符串转换为字节串。其中,`str` 是一个字符串对象,可以指定字符集(例如 UTF-8)。
最终,将字节串赋值给 `hash_val` 变量。
相关推荐
![application/octet-stream](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)