首页 > 编程语言 >C++相关知识

C++相关知识

时间:2024-08-24 14:16:11浏览次数:7  
标签:std main set 函数 int 知识 C++ 相关 include

 

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

 

标签:std,main,set,函数,int,知识,C++,相关,include
From: https://www.cnblogs.com/joion/p/18377712

相关文章

  • 基于Node.js+vue企业知识产权管理系统(程序+论文+开题报告)-计算机毕业设计
     本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着全球经济一体化的深入发展,企业知识产权已成为企业核心竞争力的重要组成部分,其保护与管理直接关系到企业的创新能力、市场地位及长远发展。当前,企业面......
  • Visio 2021安装教程及相关问题和下载
    MicrosoftVisio2021是一款功能强大的图表和流程图设计工具,提供直观的方式来创建和编辑各种图表类型,如流程图、组织结构图、网络图和平面图等。作为Visio系列的最新版本,Visio2021引入了更加现代化的用户界面,使图表的定制和管理更加简便。此外,Visio2021还增加了多项智......
  • 【网络安全】基础知识详解(非常详细)零基础入门到精通,收藏这一篇就够了
    一、什么是网络安全?百度上对“网络安全”是这么介绍的:“网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露、系统连续可靠正常地运行,网络服务不中断。”嗯…是不是感觉有点抽象。那么我们再换一种表述:网......
  • 网络安全人才缺口大 每年相关专业毕业生仅8千余人
    前言“目前我国网络安全方面人才缺口仍然很大,相关专业每年本科、硕士、博士毕业生之和仅8000余人,而我国网民数量近7亿人。”网信办网络安全协调局局长赵泽良说。这是记者从2日举行的中国互联网发展基金会网络安全专项基金捐赠仪式上了解到的信息,这也是我国首个网络安全领......
  • C++11新特性(四):库特性
    C++11新特性库特性std::move用于实现移动语义的函数,完成左值到右值的转换,参见C++11新特性(一)std::forward用于实现完美转发的函数,直接将参数的类型传递到参数中,右值不会退化为左值std::threadthread是引入的线程库,用于创建线程,并发编程。std::to_string()to_string能够完......
  • C++11新特性(三):语言特性
    C++11新特性范围for循环std::vector<int>nums;for(autoit:nums){cout<<*it<<endl;}array<5,int>a{1,2,3,4,5};for(autox:a){x*=2;//此时a中元素不会发生改变a{1,2,3,4,4}}for(auto&x:a){x*=2;//此时a中元素会发......
  • 计算机毕业设计hadoop+spark+hive漫画推荐系统 动漫视频推荐系统 漫画分析可视化大屏
    流程:1.DrissionPage+Selenium自动爬虫工具采集漫画视频、详情、标签等约200万条漫画数据存入mysql数据库;2.Mapreduce对采集的动漫数据进行数据清洗、拆分数据项等,转为.csv文件上传hadoop的hdfs集群;3.hive建库建表导入.csv动漫数据;4.一半指标使用hive_sql分析得出,一半指标使......
  • C++学习,关键字
    列表是C++中的保留字,这些保留字不能用作常量或变量或任何其它标识符名称:asmelsenewthisautoenumoperatorthrowboolexplicitprivatetruebreakexportprotectedtrycaseexternpublictypedefcatchfalseregistertypeidcharfloatreinterpret_casttypenameclassforreturnunionconstfr......
  • C++学习, 变量作用域
    从广义上看,有三个地方,可以声明变量:在函数或块中声明的变量,为局部变量。在函数参数定义的变量,为形式参数。在所有函数之外的变量,为全局变量。局部变量(LocalVariables)在函数或块内声明的变量是局部变量。它们只能由该函数或代码块中的语句使用。本地变量不为其自......
  • C++11新特性(二):语言特性
    C++11新特性语言特性nullptr空指针nullptr空指针的使用可以规避掉以往设置为NULL的风险。NULL在编译器中常常被设置为0或者其它数字,此时判断指针是否为NULL,即判断指针类型是否能够等于整型值,并不安全。int*p=nullptr;强类型枚举强类型枚举不能隐式转换为int类型,可以指定......