template < class T> 是什么
template < class T> 是什么
即任意的数据类型,这里可以ll代替吧
但是要T相同,我不得不写了((ll)1,n-1)
找到各素数因子
根据该函数功能,若返回它本身,即Miller_Rabin判断素数
就让该因子的map ++
用STL里的map
map数组下用法
来自https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html
//第三种:用数组方式插入数据,下面举例说明
#include <map>
#include <string>
#include <iostream>
using namespace std;
int main()
{
map<int, string> mapStudent;
mapStudent[1] = "student_one";
mapStudent[2] = "student_two";
mapStudent[3] = "student_three";
map<int, string>::iterator iter;
for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++)
cout<<iter->first<<' '<<iter->second<<endl;
}
map遍历
在往map里面插入了数据,我们怎么知道当前已经插入了多少数据呢,可以用size函数,用法如下:
int nSize = mapStudent.size();
对map特别地进行遍历
第一种:应用前向迭代器,
map<int, string>::iterator iter;
for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++)
cout<<iter->first<<' '<<iter->second<<endl;
第二种:应用反向迭代器,
map<int, string>::reverse_iterator iter;
for(iter = mapStudent.rbegin(); iter != mapStudent.rend(); iter++)
cout<<iter->first<<" "<<iter->second<<endl;
可以望文生义,后者是从新到旧
map元素的默认值
当map内元素值为int类型或常量时,默认值为0。
当为String类型时,默认值不明,不显示。
则我可以存map,最后遍历
vector 用法
vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
vector<int>test;//建立一个vector
test.push_back(1);
test.push_back(2);//把1和2压入vector这样test[0]就是1,test[1]就是2
int i =test.at(1);//i为2
int nSize = test.size();//2,我们可以用size函数知道当前已经插入了多少数据