C++11新特性之新类型与初始化
作者:网络转载 发布时间:[ 2016/6/22 11:01:48 ] 推荐标签:测试开发技术 .NET
可以在使用new动态分配内存时使用列表初始化。
vector<int> *pv = new vector<int>{0, 1, 2, 3, 4};
int *pi = new int[5]{0, 1, 2, 3, 4};
cout<<"test new alloator using list initialization: "<<(*pv)[2]<<' '<<pi[2]<<endl;
可以在传入参数/函数返回值时使用列表初始化。
m1.insert({"d", "D"});
vector<string> error_msg(int typ)
{
switch(typ)
{
case 1:
return {"type1", "msg1"};
case 2:
return {"type2", "msg2"};
default:
return {};
}
}
pair<string, string> get_pair(int typ)
{
if(typ == 1) return {"key", "value"};
return pair<string, string>("default key", "default value");
}
vector<string> err_msg1 = error_msg(1);
vector<string> err_msg2 = error_msg(2);
vector<string> err_msg3 = error_msg(3);
cout<<"test return value list initialization: "<<err_msg1[1]<<' '<<err_msg2[1]<<' '<<err_msg3.empty()<<endl;
pair<string, string> p1 = get_pair(1);
pair<string, string> p2 = get_pair(2);
cout<<"test return pair list initialization: "<<p1.first<<' '<<p2.first<<endl;
类内成员初始化
C++11标准中允许直接对类内成员进行初始化/列表初始化。
class InitClass
{
public:
void print_class()
{
cout<<field1<<' '<<field2<<' '<<field3<<' '<<field4<<endl;
}
private:
int field1 = 1;
int field2;
double field3 = 1.0;
double field4;
};
class InitClassMgr
{
public:
vector<InitClass> init_objs = {InitClass()};
};
InitClass test_class;
cout<<"test class member initialization: ";
test_class.print_class();
InitClassMgr mgr;
cout<<"test class member of class type initialization: ";
mgr.init_objs[0].print_class();
总结
1、long long类型。
2、nullptr字面量用于表示空指针。
3、constexpr用于表示常量表达式。
4、noexcept可以用于指示一个函数是否会抛出异常,同时可以用作运算符判定一个函数是否承诺不抛出异常。
5、新增基础类型、容器类型、new分配内存时的列表初始化。构建临时变量时也可以直接使用列表初始化。
6、可以直接对类内成员进行初始化/列表初始化。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南