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


C++ TopologyNode::setSpeciesName方法代码示例

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


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

示例1: createNode


//.........这里部分代码省略.........
        else
        {
            // construct the node
            childNode = new TopologyNode();
        }
        
        // set the parent child relationship
        node->addChild( childNode );
        childNode->setParent( node );
        
        // read the optional label
        std::string lbl = "";
        while ( ss.good() && (c = char( ss.peek() ) ) != ':' && c != '[' && c != ';' && c != ',' && c != ')')
        {
            lbl += char( ss.get() );
        }
        childNode->setName( lbl );
        
        // read the optional node parameters
        if ( ss.peek() == '[' )
        {
            
            do
            {
                
                ss.ignore();
                // ignore the '&' before parameter name
                if ( ss.peek() == '&') 
                {
                    ss.ignore();
                }
                
                // read the parameter name
                std::string paramName = "";
                while ( ss.good() && (c = char( ss.peek() ) ) != '=' && c != ',')
                {
                    paramName += char( ss.get() );
                }
                
                // ignore the equal sign between parameter name and value
                if ( ss.peek() == '=') 
                {
                    ss.ignore();
                }
                
                // read the parameter name
                std::string paramValue = "";
                while ( ss.good() && (c = char( ss.peek() ) ) != ']' && c != ',' && c != ':')
                {
                    paramValue += char( ss.get() );
                }
                
				if (paramName == "index")
                {
					
                    childNode->setIndex( boost::lexical_cast<std::size_t>(paramValue) );
					
                }
                else if (paramName=="species")
                {
					
					// \todo: Needs implementation
                    childNode->setSpeciesName(paramValue);
                
				}
                else
                {
					
                    childNode->addNodeParameter(paramName, paramValue);
                }
				
            } while ( (c = char( ss.peek() ) ) == ',' );
            
            // ignore the final ']'
            if ( (c = char( ss.peek( ) ) ) == ']' )
            {
                ss.ignore();
            }
            
        }
        
        // read the optional branch length
        if ( ss.peek() == ':' )
        {
            ss.ignore();
            std::string time = "";
            while ( ss.good() && (c = char( ss.peek( ) ) ) != ';' && c != ',' && c != ')' && c != '[' )
            {
                time += char( ss.get() );
            }
            
            std::istringstream stm;
            stm.str(time);
            double d;
            stm >> d;
            nodes.push_back( childNode );
            brlens.push_back( d );
        }
        else
        {
开发者ID:wrightaprilm,项目名称:revbayes,代码行数:101,代码来源:NewickConverter.cpp


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