当前位置: 首页>>代码示例>>C++>>正文


C++ VVI::clear方法代码示例

本文整理汇总了C++中VVI::clear方法的典型用法代码示例。如果您正苦于以下问题:C++ VVI::clear方法的具体用法?C++ VVI::clear怎么用?C++ VVI::clear使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在VVI的用法示例。


在下文中一共展示了VVI::clear方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: CalcMatrix

void CalcMatrix(const vector<CompositeData> data, VVI & RM, VVI & DM,
		VS & deci_val) {
	if (data.size() == 0 ) {
		cerr << "Input data is empty!" << endl;
		exit(-1);
	}
	unsigned int i, j;
	//Calc Relation Matrix
	RM.clear();
	VI vbTmp(data.size(), 0);
	RM.insert(RM.begin(), data.size(), vbTmp);
	for (i = 0; i < data.size(); ++i) {
		for (j = 0; j < data.size(); ++j) {
			if (data[i] == data[j])
				RM[i][j] = 1;
		}
		RM[i][i] = 1;
	}

	//Calc Relation Matrix
	STR2VI_MAP DMap;
	STR2VI_MAP::iterator it;
	for (i = 0; i < data.size(); ++i) {
		it = DMap.find(data[i].d);
		if (it == DMap.end()) {
			VI tmp;
			tmp.push_back(i);
			DMap.insert(STR2VI_MAP::value_type(data[i].d, tmp));
		} else {
			((*it).second).push_back(i);
		}
	}

	//DM: n * d
	//DMap.size() = d
	DM.clear();
	VI viTmp(DMap.size(), 0);
	DM.insert(DM.begin(), data.size(), viTmp);

//	cout << DM.size() << "\t" << DM[0].size() << endl;

	for (i = 0, it = DMap.begin(); it != DMap.end(); ++it, ++i) {
		deci_val.push_back((*it).first);
		for (j = 0; j < (*it).second.size(); ++j) {
			DM[(*it).second[j]][i] = 1;
		}
	}
	DMap.clear();
}
开发者ID:karthicks123,项目名称:iRoughSet,代码行数:49,代码来源:CRS2.cpp

示例2: CalcOmegaMatrix

void CalcOmegaMatrix(const VVI & RM, const VVI & DM, VVI & OmegaM) {
	if (RM.size() == 0 || DM.size() == 0) {
		cerr << "Size of relation matrix and decison matrix is 0 !" << endl;
		exit(-1);
	}
	//OmegaM: n * d
	OmegaM.clear();
	VI viTmp(DM[0].size(), 0);
	OmegaM.insert(OmegaM.begin(), RM.size(), viTmp);

//	cout << OmegaM.size() << "\t" << OmegaM[0].size() <<endl;

	unsigned int i, j, k;
	STR2VI_MAP::iterator it;
	int sum = 0;

	for (i = 0; i < RM.size(); ++i) {
		for (j = 0; j < DM[0].size(); ++j) {
			sum = 0;
			for (k = 0; k < DM.size(); ++k) {
				sum += RM[i][k] * DM[k][j];
			}
			OmegaM[i][j] = sum;
		}
	}
}
开发者ID:karthicks123,项目名称:iRoughSet,代码行数:26,代码来源:CRS2.cpp

示例3: multi

    bool multi(VVI & x, VVI & y, VVI & z) {
        int mx = x.size();
        int my = y.size();
        if (mx == 0 || my == 0) return false;
        int nx = x[0].size();
        int ny = y[0].size();
        if (nx == 0 || ny == 0) return false;
        //cout << "mx: " << mx << endl;
        //cout << "my: " << my << endl;
        //cout << "nx: " << nx << endl;
        //cout << "ny: " << ny << endl;
        if (nx != my) return false;
       
        z.clear();
        for (int i = 0; i < mx; i++) {
            z.push_back(VI(ny, 0));
            for (int j = 0; j < ny; j++) {
                double sum = 0;
                for (int k = 0; k < my; k++) {
                    sum += (double)x[i][k] * (double)y[k][j];
                }

                if (sum > INT_MAX || sum < INT_MIN) return false;
                z[i][j] = (int)sum;
            }
        }
        return true;
    }
开发者ID:1code,项目名称:topcoder,代码行数:28,代码来源:MatArith.cpp

示例4: buildBCC

    void buildBCC () {
        idx = VI(n, -1), low = VI(n);
        cutVertices.clear();
        bridges.clear();
        st.clear();
        components.clear();
        totalComponents++;

        for (int i = 0; i < n; i++) if (idx[i] == -1) {
                DFS(make_pair(i, -1), 0);
            }
    }
开发者ID:Corei13,项目名称:contest-programming-codes,代码行数:12,代码来源:12783.cpp

示例5: add

 bool add(VVI & x, VVI & y, VVI & z) {
     int mx = x.size();
     int my = y.size();
     if (mx == 0 || my == 0) return false;
     int nx = x[0].size();
     int ny = y[0].size();
     if (nx == 0 || ny == 0) return false;
     //cout << "mx: " << mx << endl;
     //cout << "my: " << my << endl;
     //cout << "nx: " << nx << endl;
     //cout << "ny: " << ny << endl;
     if (mx != my || nx != ny) return false;
     z.clear();
     for (int i = 0; i < mx; i++) {
         z.push_back(VI(nx, 0));
         for (int j = 0; j < nx; j++) {
             double tmp = (double)x[i][j] + (double)y[i][j];
             if (tmp > INT_MAX || tmp < INT_MIN) return false;
             z[i][j] = (int)tmp;
         }
     }
     return true;
 }
开发者ID:1code,项目名称:topcoder,代码行数:23,代码来源:MatArith.cpp

示例6: main

int main()
{
	//omp_set_num_threads(4);
	cout << "Scanning Started..." << endl;
	scanf("%d %d %d %d %d",&n,&m,&s,&D,&t);
	rootN = 0; while(rootN*rootN<n) rootN++;
	tmp.clear(); tmp.resize(n);

	for(int i=0; i<m; i++)
	{
		int u,v; scanf("%d %d",&u,&v); u--; v--;
		G[u].PB(v);
		tmp[u].PB(v);
	}
	for(int i=0; i<s; i++)
	{
		int x; scanf("%d",&x); x--;
		S.PB(x);
	}
	cout << "Scanning done" << endl;
	
	//test_recursive();

	double start = omp_get_wtime();
	VVI ans;
	if(D <= t && D <= rootN) { 
		cout << "Case 1 : D <= t and D <= root" << endl;
		B2::solve(G,n,m,s,D,S,ans);
	}
	else if(t >= rootN) {
		cout << "Case 2 : t >= sqrt(N)" << endl;
		R1::solve(n,m,s,D,S,G,ans,rootN);	
	}
	else if(s >= ceil(n/t)) {
		cout << "Case 3 : s >= ceil(n / t)" << endl;
		R2::solve(n,m,s,D,S,G,ans,ceil(n/t));
	}
	else if(D <= t*t) {
		cout << "Case 4 : D <= t*t" << endl;
		R3::solve(n,m,s,D,S,G,ans,ceil(n/t));
	} 
	else  {
		cout << "Case 5 : Else" << endl;
		R3::solve(n,m,s,D,S,G,ans,ceil(n/t),1,ceil(n/(t*t)));	
	} 
	double end = omp_get_wtime();

	printf("N = %d, E = %d, S = %d, D = %d\n",n,m,s,D);
	if(n <= brute_max)
	{
		cout << "Starting Bruteforce..." << endl;
		VVI dist(n,VI(n,0));
		for(int i=0; i<n; i++)
		{
			dist[i][i] = 1;
			for(auto v:tmp[i])
				dist[i][v] = 1;
		}
		//print(dist);
		double start_brute = get_cpu_time();
		int brute_cnt = transitive_closure(dist,n);
		double end_brute = get_cpu_time();

		int cnt = 0;
		for(int i=0; i<SZ(S); i++) cnt += SZ(ans[S[i]]);

		double acc = (cnt*1.0)/brute_cnt; acc *= 100;
		printf("\nAccuracy: %lf\n",acc);
		printf("Brute Time: %lf\n",end_brute - start_brute);

		//print(dist);
		/*
		for(int i=0; i<n; i++)
			for(auto v:ans[i])
				assert(dist[i][v]==1);
				*/

		cout << "Bruteforce done" << endl;
	}

	printf("Time: %lf\n",end-start);
	//printf("Graph:\n");
	//print(tmp);
	//printf("Transitive Closure:\n");
	//print(ans);
	return 0;
}
开发者ID:aravindkanna,项目名称:BTP,代码行数:87,代码来源:main.cpp


注:本文中的VVI::clear方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。