关于c++的所有容器使用规则总结(全)

3 篇文章 0 订阅
1 篇文章 0 订阅

#vector使用总结
##一:vector的构造

//1.vector构造函数
	vector<int> vctFirst;    //默认构造
	vector<int> vctSecond(4, 100);
	vector<int> vctThird(vctSecond.begin(), vctSecond.end());
	vector<int> vctFourth(vctThird);
	int arr[5] = { 1,2,3,4,5 };
	//vector<int> vctFifth(arr, arr + 5);///不推荐这样写法
	vector<int> vctFifth(arr, arr + sizeof(arr) / sizeof(int));///通用代码
	//2.map构造函数
	map<std::string, int> mapInit;
	map<std::string, int> mapFirst{ {"1", 1},{"2",2},{"3",3} }; //C++11 初始值列构造
	map<std::string, int> mapSecond(mapFirst);					//拷贝构造
	map<std::string, int> mapThird(mapSecond.find("2"), mapSecond.end());    //构造mapSecond这个map的一段区间

#map容器的两种循环方式

	map<int,int> mapNum;
	//第一种方式访问 利用迭代器
	for (map<int, int>::iterator it = mapNum.begin(); it != mapNum.end();it++)
	//第二种方式访问 利用c++11新特性auto
	mapNum.insert(pair<int, int>(2, 2));//利用pair进行插入
	mapNum.insert(make_pair(3, 3));//利用make_pair进行插入
	for (auto n : mapNum)
	{
		cout << n.first << n.second << endl;
	}

第二种使用起来简单但是不能对map容器类成员进行操作,可能会引起错误

#vector容器的值拷贝到另一个容器并实现容器内值的随机排序

#include "stdafx.h"
#include "iostream"
#include "random"//random_device 、mt19937 头文件
#include "vector"
#include <algorithm>//shuffle头文件
using namespace std;
#define  MAX 10
vector<int> vctA{ 1,2,3,4,5,6,7,8,9,10 };

int main()
{
	vector<int> vctB;
	vctB.assign(vctA.begin(), vctA.end());//容器A 赋值给B

	std::random_device rd;
	std::mt19937 gen(rd()); //梅森旋转法 
	std::shuffle(vctB.begin(), vctB.end(), gen);//随机排列函数shuffle

	cout << vctB[0] << "||"<< vctB[9] << endl;
    return 0;
}

今天工作时看到了一段差不多的代码理解了一下,自己写了一段
以上完成了容器值的复制及利用梅森旋转法生成随机种子排序容器内的值 VS2015编译通过
浏览器输入下方地址点一下关注就可以查看所有学习总结文章
https://blog.csdn.net/qq_33237477

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++中,可以使用标准库中的`std::sort`函数对容器中的元素进行排序。`std::sort`函数的用法如下: ```cpp #include <algorithm> std::sort(begin, end) ``` 其中,`begin`和`end`分别是排序范围的起始和结束迭代器,表示要排序的元素的范围。 下面是一个示例代码,展示如何使用`std::sort`函数对整型数组进行升序排序: ```cpp #include <iostream> #include <algorithm> #include <vector> int main() { std::vector<int> nums = {5, 2, 9, 1, 3}; // 对整型数组进行升序排序 std::sort(nums.begin(), nums.end()); // 输出排序后的结果 for (int num : nums) { std::cout << num << " "; } std::cout << std::endl; return 0; } ``` 上述代码中,我们使用`std::sort`函数对整型数组`nums`进行升序排序。通过传入`nums.begin()`和`nums.end()`作为参数,指定了要排序的范围。最后,我们使用循环输出排序后的结果。 如果需要对自定义的数据类型进行排序,可以通过重载比较运算符(`<`)来定义元素之间的比较规则,或者通过自定义比较函数来传递给`std::sort`函数。例如: ```cpp struct Person { std::string name; int age; }; bool compareAge(const Person& person1, const Person& person2) { return person1.age < person2.age; } int main() { std::vector<Person> people = {{"Alice", 25}, {"Bob", 30}, {"Charlie", 20}}; // 对自定义的数据类型进行排序,按照年龄升序排序 std::sort(people.begin(), people.end(), compareAge); // 输出排序后的结果 for (const Person& person : people) { std::cout << person.name << " (" << person.age << ") "; } std::cout << std::endl; return 0; } ``` 上述代码中,我们定义了一个自定义的数据类型`Person`,包含姓名和年龄两个成员变量。然后,我们定义了一个比较函数`compareAge`,用于按照年龄升序排序。在`std::sort`函数中,我们通过传入`compareAge`函数作为第三个参数,指定了元素之间的比较规则。最后,我们使用循环输出排序后的结果。 总结来说,`std::sort`函数是C++标准库中用于排序的函数,可以对容器中的元素进行升序排序。对于自定义的数据类型,可以通过重载比较运算符或者自定义比较函数来指定元素之间的比较规则

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值