C++ 9.1.2 容器内元素的类型约束-------非引用、非IO标准库类型
来源:互联网 发布:骑马与砍杀设置优化 编辑:程序博客网 时间:2024/06/06 14:23
简介
容器内元素的约束:
元素类型必须支持赋值运算;
元素类型的对象必须可以复制。
关联容器的键类型还需满足其他的约束(10章)
除了引用类型外,所有内置或复合类型都可用作元素类型。引用不支持一般意义的赋值运算,引用必须初始化,初始化之后值不能再变了。因此没有元素是引用类型的容器。
IO库类型不支持复制和赋值,因此不能创建存放IO类型对象的容器,除输入输出(IO)标准库类型之外,所有其他标准库类型都是有效的容器元素类型。
- 因为容器受容器元素类型的约束,所以可以定义元素是容器类型的容器。但是 > 符号直接要有空格,不然会被当做>>运算符的
===============================================================================================================
一、容器内元素的类型约束—-非引用、非IO标准库类型
C++语言中,大多数类型都可用作容器的元素类型。容器元素类型必须满足以下两个约束:
元素类型必须支持赋值运算;
元素类型的对象必须可以复制。
关联容器的键类型还需满足其他的约束(10章)
除了引用类型外,所有内置或复合类型都可用作元素类型。引用不支持一般意义的赋值运算,引用必须初始化,初始化之后值不能再变了。因此没有元素是引用类型的容器。
IO库类型不支持复制和赋值,因此不能创建存放IO类型对象的容器,除输入输出(IO)标准库类型之外,所有其他标准库类型都是有效的容器元素类型。
容器本身也满足上述要求,因此可以定义元素本身就是容器类型的容器。
1、容器操作的特殊要求
支持复制和赋值 功能是容器元素类型的最低要求,此外,一些容器操作对元素类型还有特殊要求。
其中一些需外加类型要求的容器操作是指定容器大小并提供单个初始化式的构造函数。如果容器存储类类型的对象,那么只有当其元素类型提供默认构造函数时,容器才能使用这种构造函数。
不是很懂!!!
//假设Foo 没有默认构造函数,但提供了需要一个int型形参的构造函数vector<Foo> empty;//没有需要为元素默认构造vector<Foo> bad(10);//错误!!!Foo没有默认的构造函数vector<Foo> ok(10,1);//可以,每个元素初始化为1
2、容器的容器
因为容器受容器元素类型的约束,所以可以定义元素是容器类型的容器。
vector< vector<string> > lines;//注意是这个,而不是“vector<vector<string>> lines;”这个//必须用空格隔开两个相邻的>符号,以示这是两个分开的符号,否则,系统会认为>>是单个符号,为右移操作符,结果会导致编译错误。
- C++ 9.1.2 容器内元素的类型约束-------非引用、非IO标准库类型
- C++ STL容器内元素的类型约束
- c++:函数返回引用类型和非引用类型
- [C++]标准库类型容器
- 从一道题谈C++容器内元素的类型约束
- 变量的引用类型和非引用类型的区别
- 变量的引用类型和非引用类型的区别
- 引用类型变量和非引用类型变量的区别
- IO标准库类型
- IO标准库类型
- 标准库:容纳不完全类型的容器
- 函数返回值:引用类型和非引用类型
- algo1-3.cpp 变量的引用类型和非引用类型的区别
- C++中函数返回值的引用类型与非引用类型的区别
- C++函数的返回值——返回引用类型&非引用类型
- C++函数的返回值——返回引用类型&非引用类型
- C++函数的返回值——返回引用类型&非引用类型
- C++函数的返回值——返回引用类型&非引用类型
- Support Vector Mechine
- Nginx安装google_perftools模块的方法
- 继承PreferenceActivity,报需要验证fragment是否有效
- 命令模式代码示例
- Tomcat配置虚拟目录、多域名、多个Http监听端口的方式
- C++ 9.1.2 容器内元素的类型约束-------非引用、非IO标准库类型
- RevitAPI: 如何创建云线?How to create RevisionCloud
- 如何调试PHP程序(转)
- android入门:zxing学习笔记(二)
- Qt 之 stylesheet 用法, QSS实例
- 《超实用的JavaScript代码段》可以参加京东买200-100的促销了
- android入门:zxing学习笔记(一)
- oracle查询用户所在的表空间
- 黑马程序员——Set集合+hashCode+比较器