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());

 

posted @   CodeRabbit_joion  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示