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


C++ list::crend方法代码示例

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


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

示例1: PopTag

void CRealTextParser::PopTag(std::list<Tag>& p_rlistTags, const std::wstring& p_crszTagName)
{
    for (auto riter = p_rlistTags.crbegin(); riter != p_rlistTags.crend(); ++riter) {
        if (riter->m_szName == p_crszTagName) {
            p_rlistTags.erase((++riter).base());
            return;
        }
    }
}
开发者ID:Chris-Hood,项目名称:mpc-hc,代码行数:9,代码来源:RealTextParser.cpp

示例2: lqr

	static std::list<Eigen::Matrix<double,4,12> > lqr(System const & sys, double dt, std::list<State> const & list_state, std::list<U> const & list_u, Mat12 Q, Mat4 Ru, Mat12 Qf)
	{
		std::list<Eigen::Matrix<double,4,12> > list_K;

		std::list<State>::const_reverse_iterator rit_state=list_state.crbegin();
		std::list<U>::const_reverse_iterator rit_u=list_u.crbegin();

		rit_state++;


		Mat4 MF=(Mat4()<<            0,  sys.kt*sys.d,             0, -sys.kt*sys.d,
					     -sys.kt*sys.d,             0,  sys.kt*sys.d,             0,
					            sys.km,       -sys.km,        sys.km,       -sys.km,
						        sys.kt,        sys.kt,        sys.kt,        sys.kt).finished();

		Mat12 P=Qf;

		while(rit_state!=list_state.crend())
		{
			Vec4 u1=*rit_u;
			Vec4 u2=u1.cwiseProduct(u1);
			Mat3 R=rit_state->g.block(0,0,3,3);
			Vec3 omega=rit_state->v.head(3);
		
			Mat3 Ad=SO3::exp(-omega*dt);

			double f=(u2(0)+u2(1)+u2(2)+u2(3))*sys.kt;

			Mat12 A=Mat12::Zero();
			A.block(0,6,6,6)=Mat6::Identity();
			A.block(6,6,3,3)=sys.I_inv*(SO3::hat(sys.I*omega)-SO3::hat(omega)*sys.I);
			A.block(9,0,3,3)=-f*R*SO3::E[2]/sys.m;
			A.block(0,6,3,6)=SO3::dexp(omega*dt)*A.block(0,6,3,6);
			
			A=Mat12::Identity()+A*dt;
			A.block(0,0,3,12)=SO3::exp(-omega*dt)*A.block(0,0,3,12);

			Eigen::Matrix<double,12,4> B=Eigen::Matrix<double,12,4>::Zero();
			B.block(6,0,3,3)=sys.I_inv;
			B.block(9,3,3,1)=R.col(2)/sys.m;
			B=B*MF*(2*u1).asDiagonal();
			B=B*dt;
		
			Eigen::Matrix<double,4,12> K=(Ru+B.transpose()*P*B).inverse()*B.transpose()*P*A;
			P=K.transpose()*Ru*K+Q+(A-B*K).transpose()*P*(A-B*K);

			list_K.push_front(K);

			rit_state++;
			rit_u++;
		}

		return list_K;
	}
开发者ID:fantaosha,项目名称:sac,代码行数:54,代码来源:quadrotor.hpp

示例3: updateVisibleWidgetsList

void ofxWidget::updateVisibleWidgetsList() {

	if (!ofxWidget::bVisibleListDirty)
		return;

	//ofLogNotice() << "vList Update cache miss";

	// build a list of visible widgets based on all widgets
	// TODO: only rebuild this list if visiblility list on adding/removing and 
	// parenting widgets, and on changing widget visiblity, of course.
	sVisibleWidgets.clear();

	for (auto it = sAllWidgets.crbegin(); it != sAllWidgets.crend(); ++it) {
		if (auto p = it->lock()) {
			if (p->mVisible) {
				sVisibleWidgets.emplace_front(*it);
			} else {
				std::advance(it, p->mNumChildren);
			}
		}
	}
	ofxWidget::bVisibleListDirty = false;
}
开发者ID:tgfrerer,项目名称:ofxWidget,代码行数:23,代码来源:ofxWidget.cpp


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