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


C++ EList::front方法代码示例

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


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

示例1: TSP

std::pair<std::vector<NodeID>, EdgeWeight> TSP(Graph* G){
	NodeID* n = new NodeID[G->size()];
	NodeID* mi = new NodeID[G->size()];
	EdgeWeight total = 0;
	EdgeWeight min = -1;

	for(int i = 0; i < G->size(); i++){
		n[i] = i;
	};
	
	/*NodeID** nn = new NodeID*[G->size()];
	for(int i = 0; i < G->size(); i++){
		nn[i] = new NodeID[G->size()];
	};*/

	EList l;
	NWPair p;
	bool found;
	for(int i = 0; i < G->size(); i++){
		total = 0;
		for(int i = 0; i < G->size(); i++){
			n[i] = -1;
		};
		n[0] = i;
		l = G->getAdj(i);
		l.sort(sortWeight);
		p = l.front();
		total = total + p.second;
		n[1] = p.first;
		for(int j = 0; j < G->size() - 2; j++){
			l = G->getAdj(p.first);
			l.sort(sortWeight);
			p = l.front();
			found = true;
			while(found){
				found = false;
				for(int q = 0; q < G->size(); q++){
					if(p.first == n[q]){
						l.pop_front();
						p = l.front();
						found = true;
					};
				};
			};
			p = l.front();
			total = total + p.second;
			n[j+2] = p.first;
		};
		total = total + G->weight(n[0],n[G->size()-1]);
		if(min == -1 || min > total){
		min = total;
			for(int i = 0; i < G->size(); i++){
				mi[i] = n[i];
			};
		};
	};

	/*do {
    for(int i = 0; i < (G->size() - 1); i++){
		total = total + G->weight(n[i],n[i+1]);
	};
	total = total + G->weight(n[G->size()-1], n[0]);
	if(min == -1 || min > total){
		min = total;
		for(int i = 0; i < G->size(); i++){
			mi[i] = n[i];
		};
	};
	total = 0;
	} while ( next_permutation (n,n+G->size()) );*/


	//vector<NodeID> wut (*mi, *mi + sizeof(*mi) / sizeof(int) );
	//NodeID in[] = {0,3,4,1,2};
	//vector<NodeID> wut2 (in, in + sizeof(in) / sizeof(int) );

	vector<NodeID> wut3;
	for(int i = 0; i < G->size(); i++){
		wut3.push_back(mi[i]);
	};
	std::pair<std::vector<NodeID>, EdgeWeight> omg (wut3,min);

	/*NodeID in[] = {0,1,2,3,4};
  vector<NodeID> wut (in, in + sizeof(in) / sizeof(int) );
 //vector<NodeID> wut = NULL;
  //vector<NodeID> hu;
  cout << "what" << G->size() << endl;
  cout << "no where " << endl;
	EdgeWeight wtf = 6.7;
	std::pair<std::vector<NodeID>, EdgeWeight> omg (wut,wtf);*/
	return  omg;
};
开发者ID:cluelesswalnut,项目名称:HW05_ernstmh_1,代码行数:92,代码来源:GraphAlgs.cpp


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