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

两学一做考学网站建站流程主要有哪些

两学一做考学网站,建站流程主要有哪些,wordpress php版本,江西省城乡和住房建设部网站C中的模板 在其它语言中如Java或者C#中可能叫做泛型&#xff0c;在C中为模板&#xff0c;泛型的限制通常比模板多。模板可以解决多次的代码重复问题&#xff0c;如以下场景 #include <iostream> #include <string>void print(int value) {std::cout << val…

C++中的模板

在其它语言中如Java或者C#中可能叫做泛型,在C++中为模板,泛型的限制通常比模板多。模板可以解决多次的代码重复问题,如以下场景

#include <iostream>
#include <string>void print(int value)
{std::cout << value << std::endl;
}void print(float value)
{std::cout << value << std::endl;
}void print(std::string value)
{std::cout << value << std::endl;
}int main(void)
{print("Hello");print(10);print(1.1f);return 0;
}

在这个场景中print函数设置初衷是为了输出参数,与参数类型无关,但为了输出功能需要多次重载,极大地降低了开发效率,于是可以通过template模板如下改造

#include <iostream>
#include <string>template<typename T>
void print(T value)
{std::cout << value << std::endl;
}int main(void)
{print("Hello");print(10);print(1.1f);return 0;
}

两片代码的效果是相同的,但是用template后的代码更简单易读,需要注意的是,template后的函数为随用随编,也就是当程序中调用才进行编译,这点与一般的函数不同,我们可以通过实验加深理解。

#include <iostream>
#include <string>template<typename T>
void print(T value)
{std::cot << va << std::en
}int main(void)
{return 0;
}

相较于上段代码,这段代码中的print里有明显错误,但是却可以成功编译并运行。

尖括号内的typename也可以换成class也没有影响或者直接改成int并且创建实例时输入参数,这点可以看作宏来使用,比如下面的场景

#include <iostream>
#include <string>template<int N>
class Array
{
private:int m_Array[N];
public:int GetSize() const { return N; }
};int main(void)
{Array<5> array;return 0;
}

C++中的lambda函数

lambda函数就是一种简洁的匿名函数,比如在做某个功能时突然要用一个函数但不想正式地去声明,可以用lambda函数,以下为简单示例。

#include <iostream>int main(void)
{auto lambda_func = [](int value){std::cout << "Value:" << value << std::endl;};lambda_func(10);return 0;
}

不难发现lambda函数的构成需要将本体复制给一个auto类型的变量以供随时调用,lambda函数本体由[](){函数体}构成,其中中括号内为捕获量。什么是捕获?捕获是函数体内和函数外变量或常量之间沟通的渠道,比如我们在lambda函数外定义了int x, y;两个变量,我们可以捕获进lambda函数内对两个变量操作。

#include <iostream>int main(void)
{int x = 10, y = 20;auto lambda_func = [x, y](int value){std::cout << "x:" << x << ",y:" << y << std::endl;std::cout << "Value:" << value << std::endl;};lambda_func(10);return 0;
}

方括号内的多个参数由逗号隔开。

在上述示例中我们将lambda函数外的x, y两个变量通过捕获可以在函数体内读取,但是我们不能更改他的值,因为现在是只读的状态。如果想要在函数体内更改需要在变量前添加引用符号,这样在lambda函数内更改变量本体,而不是只读。

#include <iostream>int main(void)
{int x = 10, y = 20;auto lambda_func = [&x, y](int value){x++;std::cout << "x:" << x << ",y:" << y << std::endl;std::cout << "Value:" << value << std::endl;};lambda_func(10);return 0;
}

此外如果想要捕获匿名函数外的所有变量的只读可以使用[=],想要捕获所有引用可以使用[&]。

#include <iostream>int main(void)
{int x = 10, y = 20;auto lambda_func1 = [=](int value){std::cout << "x:" << x << ",y:" << y << std::endl;std::cout << "Value:" << value << std::endl;};auto lambda_func2 = [&](int value){x = ++y + 1;std::cout << "x:" << x << ",y:" << y << std::endl;std::cout << "Value:" << value << std::endl;};lambda_func1(10);lambda_func2(10);return 0;
}

C++中命名空间

平常做项目不推荐使用using namespace std使用标准库,这会让你的项目在移植后或者编译后产生错误,虽然加了using namespace std可以让你使用标准库时变得轻松多了,但是可能会产生重名的问题,如何创建自己的namespace代码示例如下

#include <iostream>
#include <string>namespace MyNamespace {void print(const std::string& value){std::cout << "value is: " << value << std::endl;}
}int main(void)
{MyNamespace::print("Hello");return 0;
}

当然你也可以在某一范围内使用命名空间比如

#include <iostream>
#include <string>namespace MyNamespace {void print(const std::string& value){std::cout << "value is: " << value << std::endl;}
}int main(void)
{using namespace MyNamespace;print("Hello");return 0;
}
http://www.hkea.cn/news/439682/

相关文章:

  • 提供网站建设服务的网站价格快速推广
  • 政府网站建设原则 统筹规划进入百度官网
  • 网站如何做等级保护谷歌搜索引擎363
  • 天河网站建设网络推广不属于网络推广方法
  • 阜阳中国建设银行官网站百度提交入口网站网址
  • 游戏网站怎么建设广告营销公司
  • 韩城做网站b2b平台推广网站
  • 网站建设课程设计摘要生活中的网络营销有哪些
  • 简单网站建设优化推广100个电商平台
  • 网站建设的仿站seo顾问收费
  • 珠宝行业做网站的好处株洲seo排名
  • java web开发网站开发cpa推广接单平台
  • 广西南宁网络营销网站网站权重优化
  • 黄山网站设计公司营销网站建设多少钱
  • 网站建设招标评分表湖南关键词优化推荐
  • 淘宝上成都网站建设如何制作视频网站
  • 最吃香的男生十大手艺5g网络优化
  • 河源哪里做网站网络项目怎么推广
  • 网站闭关保护怎么做广州百度seo 网站推广
  • 可以在线做动图的网站近期重大新闻事件
  • 伊犁州建设局网站怎么做微信小程序
  • 做网站需要买主机那新媒体营销方式有几种
  • 网络推广seo公司seo排名的方法
  • 南山做网站多少钱百度资讯
  • 西安哪里有做网站的小学生收集的新闻10条
  • 做游戏网站有几个要素seo网站关键词优化报价
  • 蓬业东莞网站建设技术支持东莞做网站公司首选
  • 网站版式设计获客渠道有哪些
  • 今日军事新闻简短扬州seo优化
  • 国外好看的教育类网站模板下载东莞做网站最好的是哪家