C++相关知识
string倒排 reverse
#include <iostream> #include <string> #include <algorithm> int main() { std::string str = "Hello, World!"; std::reverse(str.begin(), str.end()); std::cout << str << std::endl; return 0; }
vector 数组之和 accumulate
#include <iostream> #include <vector> #include <numeric> int main() { std::vector<int> arry = { 1,2,3,4,5,6,7,8,9 }; //accumulate计算数组之和 int total2 = accumulate(arry.begin(), arry.end(), 0); std::cout << "#2 total2= " << total2 << std::endl; return 0; }
各种类型转换
- string 转为int
使用 atoi 转换
使用std::stoi
- int转为string
通过 std::to_string() 函数
reduce函数
其语法格式: reduce ( func , seq [ , init ] )
参数说明:
reduce函数即为化简,它是这样一个过程:每次迭代,将上一次的迭代结果(第一次时为init的元素,如没有init则为seq的第一个元素)与下一个元素一同执行一个二元的func函数。在reduce函数中,init是可选的,如果使用,则作为第一次迭代的第一个元素使用。
简单来说,可以用这样一个形象化的式子来说明:
reduce( func, [1, 2,3] ) = func( func(1, 2), 3)
使用reduce实现一个阶乘的代码。
n = 5
print reduce(lambda x, y: x * y, range(1, n + 1))
120
C++ set count函数使用方法
count 是 C++ STL (Standard Template Library) 中 set 容器的一个成员函数,用于计算 set 中某个特定元素的个数。这个成员函数通常只会返回 1 或 0,因为 set 是一个不允许有重复元素的容器。
#include <iostream> #include <set> int main() { std::set<int> mySet = {1, 2, 3, 4, 5}; // 使用 count 函数 std::cout << "数量 3 的元素个数为: " << mySet.count(3) << std::endl; std::cout << "数量 6 的元素个数为: " << mySet.count(6) << std::endl; return 0; }
C++ 两个set合并
在C++中,可以使用std::set的成员函数insert来合并两个set。以下是一个简单的例子:
#include <iostream> #include <set> int main() { std::set<int> set1 = {1, 2, 3}; std::set<int> set2 = {3, 4, 5}; // 将set2中的所有元素插入到set1中 set1.insert(set2.begin(), set2.end()); // 输出合并后的set for (int num : set1) { std::cout << num << " "; } return 0; }
__builtin_popcount()实现
__builtin_popcount()是GCC内置函数,用于计算一个整数中1的个数。这个函数通常用于优化计算一个整数中二进制1的个数的操作
#include <stdio.h> #include <stdlib.h> int count_one_bits(unsigned int x) { return __builtin_popcount(x); } int main() { unsigned int x = 10; printf("%d\n", count_one_bits(x)); return 0; }
C++ sort自定义排序的3种方式
方法1 谓词
bool compare(int m, int n)
{
return m>n;
}
int main()
{
vector<int>nums = { 10,2,51 };
sort(nums.begin(), nums.end(), compare);
system("pause");
}
方法2 重载小括号()
class compare
{
bool operator()(int m, int n)
{
return m>n;
}
};
int main()
{
vector<int>nums = { 10,2,51 };
sort(nums.begin(), nums.end(), compare());
system("pause");
}
方法3 Lambda表达式(匿名函数)
int main()
{
vector<int>nums = { 10,2,51 };
sort(nums.begin(), nums.end(), [](int& a, int& b) {return a > b; });
system("pause");
}
set 强制转换为vector
std::set<int> mySet = {1, 2, 3, 4, 5};
std::vector<int> myVector(mySet.begin(), mySet.end());
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现