中国Linux开源镜像网站

=== 企业贡献: #阿里云开源镜像站: http://mirrors.aliyun.com/ #搜狐开源镜像站:http://mirrors.sohu.com/ #网易开源镜像站:http://mirrors.163.com/ === 大学教学: #中国科学技术大学: ** http://mirrors.ustc.edu.cn/ (IPv4+IPv6) ** http://mirrors4.ustc.edu.cn/ ** http://mirrors6.ustc.edu.cn/ #重庆大学:http://mirrors.cqu.edu.cn/ #北京理工大学: ** http://mirror.bit.edu.cn (IPv4 only) ** http://mirror.bit6.edu.cn (IPv6 only) #北京交通大学: ** http://mirror.bjtu.edu.cn (IPv4 only) ** http://mirror6.bjtu.edu.cn (IPv6 only) ** http://debian.bjtu.edu.cn (IPv4+IPv6) #兰州大学:http://mirror.lzu.edu.cn/ #厦门大学:http://mirrors.xmu.edu.cn/ #上海交通大学: ** http://ftp.sjtu.edu.cn/ (IPv4 only) ** http://ftp6.sjtu.edu.cn (IPv6 only) #清华大学: ** http://mirrors.tuna.tsinghua.edu.cn/ (IPv4+IPv6) ** http://mirrors.6.tuna.tsinghua.edu.cn/ (IPv6 only) ** http://mirrors.4.tuna.tsinghua.edu.cn/ (IPv4 only) #天津大学:http://mirror.tju.edu.cn/ #西南大学:http://linux.swu.edu.cn/swudownload/Distributions/ #东北大学: ** http://mirror.neu.edu.cn/ (IPv4 only) ** http://mirror.neu6.edu.cn/ (IPv6 only) #电子科技大学:http://ubuntu.uestc.edu.cn/ #青岛大学:http://mirror.qdu.edu.cn/ #开源中国社区 http://mirrors.oss.org.cn/ #大连东软信息学院 http://mirrors.neusoft.edu.cn/ #华中科技大学 http://mirrors.hust.edu.cn/ #中山大学 http://mirrors.sysu.edu.cn/ #清华大学学生网管会 http://mirrors.tuna.tsinghua.edu.cn/ #浙江大学 http://mirrors.zju.edu.cn/web/ #台湾淡江大学 http://ftp.tku.edu.tw/Linux/ #Linux运维派开源镜像 http://mirrors.skyshe.cn/ 最后: CentOs 官方镜像 列表 http://mirror-status.centos.org/

C++ Optimization

=== std::vector vs std::list 1. std::vector: fast access; use **.resize** method rather than **.clear** method to clear the vector for further use; if you need to append lots of elements and you know the number of the elements, use **.reserve** method first; std::list : fast insert and fast remove 2. It is always better to use **++i** instead of **i++** because **i++** needs an extra copy operation.

Boost::MPL::vector wrapper index to its element

Here is the code {{{ #include <iostream> #include <boost/mpl/int.hpp> #include <boost/mpl/transform.hpp> #include <boost/mpl/vector.hpp> #include <boost/mpl/for_each.hpp> #include <boost/mpl/find.hpp> using namespace boost::mpl; typedef boost::mpl::vector<int_<3>, int_<4>, int_<9>, int_<10> > my_vec; struct add_index_wrap{ template<typename T> struct apply{ struct A{ typedef T type; typedef typename boost::mpl::find<my_vec, T>::type found_type; typedef typename boost::mpl::int_<found_type::pos::value> index; }; typedef A type; }; }; struct print{ template<typename T> void operator()(T t){ std::cout<<"Index:"<<T::index::value<<std::endl; std::cout<<"Value:"<<T::type::value<<std::endl; } }; int main() { typedef transform< my_vec, add_index_wrap >::type my_vec_2; boost::mpl::for_each<my_vec_2>( print() ); } }}} === References #[[http://www.boost.org/doc/libs/1_59_0/libs/mpl/doc/refmanual/find.html|boost::mpl::find]] #[[http://www.boost.org/doc/libs/1_59_0/libs/mpl/doc/refmanual/transform.html|boost::mpl::transform]]