c++杂记:字符串处理、哈希表相关函数

【c++】字符串、哈希表、容器相关函数

1、字符串处理

  • 截取子串,两种方法:
#include <string>
using namespace std;
string substr=str.substr(int i,int length); // 注意第二个参数,是提取数量不是尾下标
string substr=str.substring(int i,int j); // 注意第二个参数,是尾下标,默认提取到字符串末尾

2、哈希表基本操作

  • 使用头文件 “unordered_set.h”
  • 创建哈希表,使用unordered_set,注意两者区别:
#include <unordered_set>
using namespace std;
// unordered_set存储的是唯一元素,每个元素都是一个值,且值必须是唯一的
// unordered_map存储的是键值对,每个元素都是一个键值对,其中键和值可以是任意类型。
// 创建空的哈希表
unordered_set<string> set1; // case 1
auto set2=unordered_set<string> (); // case 2
// 使用迭代器构造:
unordered_set<string> set3(set1.begin(), set1.end());
// 使用数组初值构造:
unordered_set<int> set4(arr,arr+5);
  • 对所有元素进行遍历:
// 注意不可像数组那样使用下标遍历,如 set1[i],这样是错误的!
// c++11
for(string str : set1) {
	cout << str << endl;
}
// 使用迭代器
for(unordered_set<string>::iterator it = set1.begin(); it != set1.end(); ++it){
	cout << *it << endl;
} 
  • 插入元素 str:
set1.insert(str);
  • 删除指定元素 str:
if(set1.erase(str)) cout<<"ok!"<<endl;
  • 查找元素 str 是否存在:
// 若找到,则返回元素的迭代器,否则返回set.end()
if(set1.find(str)!=set1.end()) cout<<"find!"<<endl;

3、容器类常用操作

  • 获取 vector < int > 的最大值、最小值:
#include <vector>
using namespace std;
vector<int> arr;
arr.insert(1);
arr.insert(2);
int maxVal = *max_element(arr.begin(),arr.end());
int minVal = *min_element(arr.begin(),arr.end());
// 同时获取最大最小值
auto result = minmax_element(vec.begin(), vec.end());
int minVal = *result.first;
int maxVal = *result.second;
  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值