当前位置: 首页 > news >正文

阿里云虚拟主机可以做几个网站吗伪原创嵌入网站

阿里云虚拟主机可以做几个网站吗,伪原创嵌入网站,产品包装设计素材网站,网站 推广 实例非类型模板参数(参考《C Templates 英文版第二版》) Chapter 3 3.1 非类型类模板参数 与前几章的简单例子不同,你也可以通过std::array实例化一个固定大小的栈,这样做的优点在于内存管理, #include array #include casserttemplatetypename T, std::si…非类型模板参数(参考《C Templates 英文版第二版》) Chapter 3 3.1 非类型类模板参数 与前几章的简单例子不同,你也可以通过std::array实例化一个固定大小的栈,这样做的优点在于内存管理, #include array #include casserttemplatetypename T, std::size_t Maxsize class Stack {private:std::arrayT,Maxsize elems; // elementsstd::size_t numElems; // current number of elementspublic:Stack(); // constructorvoid push(T const elem); // push elementvoid pop(); // pop elementT const top() const; // return top elementbool empty() const { // return whether the stack is emptyreturn numElems 0;}std::size_t size() const { // return current number of elementsreturn numElems;} };templatetypename T, std::size_t Maxsize StackT,Maxsize::Stack (): numElems(0) // start with no elements {// nothing else to do }templatetypename T, std::size_t Maxsize void StackT,Maxsize::push (T const elem) {assert(numElems Maxsize);elems[numElems] elem; // append elementnumElems; // increment number of elements }templatetypename T, std::size_t Maxsize void StackT,Maxsize::pop () {assert(!elems.empty());--numElems; // decrement number of elements }templatetypename T, std::size_t Maxsize T const StackT,Maxsize::top () const {assert(!elems.empty());return elems[numElems-1]; // return last element } 运行一下: #include stacknontype.hpp #include iostream #include stringint main() {Stackint, 20 int20Stack; // stack of up to 20 intsStackint, 40 int40Stack; // stack of up to 40 intsStackstd::string, 40 stringStack; // stack of up to 40 strings// manipulate stack of up to 20 intsint20Stack.push(7);std::cout int20Stack.top() \n;int20Stack.pop();// manipulate stack of up to 40 stringsstringStack.push(hello);std::cout stringStack.top() \n;stringStack.pop(); }你也可以设置默认参数 templatetypename T, std::size_t Maxsize 100,但最好不要这样做,因为栈大小最好还是有程序员自己控制 3.2 非类型函数模板参数 你也可以为函数定义非类型模板参数 templateint val,typename T int addval(T a) {return a val; } int main() {std::cout addval10(10) std::endl; }这种函数是很有用的,可以将它作为参数. 例如,如果你可以使用STL,你可以传入一个函数模板的实例,使集合中的每个数加一个值 std::vectorint source{ 1,4,5 };std::vectorint dest{0,0,0};std::transform(source.begin(), source.end(), dest.begin(), addval10,int);for (auto value : dest){std::cout value std::endl;}如果你制定非类型函数模板参数是int那么就无法使用其他类型,是有什么方法可以做到自动推导其他类型呢? 其实,你可以指定一个根据之前的模板参数推断出来的模板参数 templateauto val,typename T decltype(val) T addval(T a) {return a val; }3.3 非类型模板参数的限制 非类型模板参数有一些限制,例如,它们只能是整数,(对象,函数,成员)指针,(对象,函数,成员)引用,std::nullptr 浮点数指针和类对象不可以作为非类型模板参数 3.4 模板参数类型auto C17 ,你可以定义一个非类型模板模板参数去普遍的接收任何类型,使用这个特性,你可以定义一个更加一般的固定大小栈 #include array #include casserttemplatetypename T, auto Maxsize class Stack {public:using size_type decltype(Maxsize);private:std::arrayT,Maxsize elems; // elementssize_type numElems; // current number of elementspublic:Stack(); // constructorvoid push(T const elem); // push elementvoid pop(); // pop element T const top() const; // return top elementbool empty() const { // return whether the stack is emptyreturn numElems 0;}size_type size() const { // return current number of elementsreturn numElems;} };// constructor templatetypename T, auto Maxsize StackT,Maxsize::Stack (): numElems(0) // start with no elements {// nothing else to do }templatetypename T, auto Maxsize void StackT,Maxsize::push (T const elem) {assert(numElems Maxsize);elems[numElems] elem; // append elementnumElems; // increment number of elements }templatetypename T, auto Maxsize void StackT,Maxsize::pop () {assert(!elems.empty());--numElems; // decrement number of elements }templatetypename T, auto Maxsize T const StackT,Maxsize::top () const {assert(!elems.empty());return elems[numElems-1]; // return last element } 运行: Stackint, 20u int20Stack; // stack of up to 20 intsStackstd::string, 40 stringStack; // stack of up to 40 strings// manipulate stack of up to 20 intsint20Stack.push(7);std::cout int20Stack.top() \n;auto size1 int20Stack.size();// manipulate stack of up to 40 stringsstringStack.push(hello);std::cout stringStack.top() \n;auto size2 stringStack.size();if (!std::is_same_vdecltype(size1), decltype(size2)) {std::cout size types differ \n;}
http://www.zqtcl.cn/news/769026/

相关文章:

  • 网站地图开发国家住房和城乡建设部中国建造师网站
  • 巫山网站建设泉州市培训建设系统中心网站
  • 网站开发国内外研究背景室内设计师收入高吗
  • 深圳网站维护一般多少钱沈阳做网站黑酷科技
  • 汽车营销服务网站建设怎样申请微信公众号个人
  • 阿里云 做网站北京工程建设交易中心网站
  • 网站备案安全承诺书竞价外包推广专业公司
  • 如何做公司网站广西住建厅八大员报名网站
  • 以下不是网站开发语言的哪项工信部域名备案管理系统
  • 优化网站搭建创业项目网站建设规划
  • 温岭网站开发网站建设程序文件
  • 有什么网站可以做深圳初二的试卷练习商城网站功能
  • 网站托管就业新闻今天的最新新闻
  • 重庆网站建设方案书国外做电商平台的网站有什么
  • 微信扫一扫登录网站如何做网络平台怎么弄
  • 怎么做网页模板展示网站株洲网红餐厅
  • 优秀学校网站设计正规抖音代运营公司排名
  • 网站的网站建设公司太原中小企业网站制作
  • 北京网站建设搜q.479185700模特公司网站模板
  • 网站设置什么意思wordpress 专题页面
  • 网站推广要具备什么购物网站多少钱
  • 重庆免费做网站在线做ppt
  • wordpress固定链接设置404阳江seo优化
  • 响应网站模板下载wordpress恢复网站
  • 公司网站建设的定位语要怎么取网站开发中常见的注册界面
  • 免费企业查询网站wordpress侧边栏加载过慢
  • 网站写好了怎么做后台管理链接是什么意思
  • 低价格制作网站wordpress 注册用户
  • 免费发布租房信息网站wordpress页面回收站
  • 长网页网站信息技术教案 建设我们的网站