⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kcutility.cpp

📁 clique code with sample data set. clique is a data clustering algorithm which follows hierarchical c
💻 CPP
字号:
#include <iostream>

#include "KCUtility.h"

using namespace std;

bool hasMapping = false;
vector<vector<string> > attrMap;

void readMapping(const char* mapFile, const int attributes, const int maxValues)
{
  ifstream in;
  string token, value;
  int currentAttribute = 0;

  vector<string> dummy;
  dummy.resize(maxValues + 1, string(""));
  attrMap.resize(attributes, dummy);

  in.open(mapFile);

  while(!in.eof()){
    in >> token;
    // New attribute description
    if(token == "*A*"){
      in >> value;
      currentAttribute = atoi(value.c_str());
    }
    else{
      in >> value;
      attrMap[currentAttribute][atoi(value.c_str())].assign(token);
    }
  }
  in.close();
  hasMapping = true;
}

ostream& operator<<(ostream& out, KCClique& c){
  int i;
  KCCliqueDimIt it;

  for(i = 0; i < c.numberOfDimensions(); ++i){
    c.sortDimension(i);
      if (c.dim(i).size() > 0){
      out << "A" << i << " {";
      for(it = c.dim(i).begin(); it != c.dim(i).end(); it++){
	if(!hasMapping){
	  out << *it - c.getBase(i) + 1 << " ";
	}
	else{
	  out << attrMap[i][*it - c.getBase(i) + 1] << " ";
	}
	//out << *it << " ";
      }
      out << "}" << endl;
    }
  }

  return out;
}

ostream& operator<<(ostream& out, KCCliqueDim& c){
  int i;
  KCCliqueDimIt it;

  out << "{";
  for(it = c.begin(); it != c.end(); it++){
    out << *it << " ";
  }
  out << "}" << endl;

  return out;
}

ostream& operator<<(ostream& out, set<int>& c){
  int i;
  set<int>::iterator it;

  out << "{";
  for(it = c.begin(); it != c.end(); it++){
    out << *it << " ";
  }
  out << "}" << endl;

  return out;
}

ostream& operator<<(ostream& out, vector<int>& c){
  int i;
  vector<int>::iterator it;

  out << "{";
  for(it = c.begin(); it != c.end(); it++){
    out << *it << " ";
  }
  out << "}" << endl;

  return out;
}

ostream& operator<<(ostream& out, KCCliques& c){
  KCCliquesIt it;
  KCCliqueDimIt dimIt;

  int i = 1, j = 0;

  out << endl;
  out << "**************** Cliques Dump ****************" << endl;

  for (it = c.begin(); it != c.end(); ++it, ++i){
    out << "---------------- Clique " << i << "(" << it->getSupport() << ")----------------" << endl;
    out << *it;
  }
  
  out << "**********************************************" << endl;
    
  return out;
}

// ostream& operator<<(ostream& out, KCTransactionSet& c)
// {
//   KCTransactionSet::iterator it;

//   out << "{";
//   for(it = c.begin(); it != c.end(); it++){
//     out << *it << " ";
//   }
//   out << "}";

//   return out;
// }



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -