有些作者太非主流了,引用文献的顺序不按第一次引用的顺序来,例如,引用文献在文章中出现的顺序为
[4],[3],[4],[1],[2],[3],[1]
把它纠正过来,引用顺序应该为
[1],[2],[1],[3],[4],[2],[3]
置换映射为
1:4
2:3
3:1
4:2
下面简单的小代码实现上述功能
include <iostream>
#include <vector>
using namespace std ;
int main(int argc, char** argv) {
int temp ;
int sort = 0 ;
vector<int> fuck ;
vector<int> map_ ;
cout<<"请输入原始的文献引用序列,以回车分隔序列,以任意非数字字符结束输入"<<endl ;
while(cin>>temp)
fuck.push_back(temp) ;
for(int i = 0 ; i != fuck.size() ; i++ ){
if(fuck[i] >= 0 && fuck[i] < sort)
continue ;
if(fuck[i] > 0 )
map_.push_back(fuck[i]);
else
map_.push_back(-fuck[i]) ;
for(int j = i+1 ; j != fuck.size() ; j++)
if(fuck[j] == fuck[i])
fuck[j] = sort ;
else if(fuck[j] == sort)
fuck[j] = -sort ;
fuck[i] = sort ;
sort++ ;
}
cout<<"符合标准的的引用序列应该为:"<<endl ;
for(int i = 0 ; i != fuck.size() ; i++ )
cout<<fuck[i]+1<<" "<<flush ;
cout<<endl ;
cout<<"置换映射:"<<endl ;
for(int i = 0 ; i != map_.size() ; i++ )
cout<<i+1<<": "<<map_[i]<<endl ;
cout<<"输入任意字符结束"<<endl ;
int e1 ;
cin>>e1 ;
return 0;
}