#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