C++内蔵データ型
1449 ワード
一般的なデータ型は私たちがよく知っていて、私たちの数学の習慣にも合っています.例えばint、double、floatなど、自分はこの方面に詳しいですが、我慢して第三章のdealing with dataを見終わって、やはり自分は収穫があります.だから私はいくつかの異常なデータ型を列挙しました
1.unionタイプ
C++の共用体でstructに似ています定義を見てみましょう
ここでone 4 allは1つの変数で3の異なるタイプのデータを格納することができるが、最大のstructとの違いは、これらのタイプが同じファミリーのデータでなければならないことであり、例えば、例ではすべてが整数タイプのデータであることである.またunionというタイプのデータはメモリ上ではちょっと特別で、C++にstructのサイズは含まれる各基本データの総和のサイズですが、unionは確かにメモリ占有量が最も大きいデータによってそのサイズ(例はdoubleタイプのサイズで、一般的には8バイト)で、他のタイプのデータを格納する場合、常にこのメモリに再書き込みされます.これは、unionデータが一度に1つのデータしか表示されない理由です.Unionはメモリを非常に節約する場所に適していますが、現在、コンピュータがますます大きくなっているメモリにとって、このデータ形式は徐々に淘汰されています.
2.arrayテンプレートタイプ
C++のarrayクラスとvectorの違い:vectorはランダムにアクセスでき、ストレージスペースは連続的ではありませんが、arrayは連続的なストレージスペースであり、c-style stringに比べてarrayは文字列名による直接付与をサポートします.
3.enumerationタイプ
列挙列挙タイプは付与番号のみを定義し、他の演算子は定義されていないため、++操作は合法ではありません.
1.unionタイプ
C++の共用体でstructに似ています定義を見てみましょう
union one4all
{int a;
float b;
double c;
}
ここでone 4 allは1つの変数で3の異なるタイプのデータを格納することができるが、最大のstructとの違いは、これらのタイプが同じファミリーのデータでなければならないことであり、例えば、例ではすべてが整数タイプのデータであることである.またunionというタイプのデータはメモリ上ではちょっと特別で、C++にstructのサイズは含まれる各基本データの総和のサイズですが、unionは確かにメモリ占有量が最も大きいデータによってそのサイズ(例はdoubleタイプのサイズで、一般的には8バイト)で、他のタイプのデータを格納する場合、常にこのメモリに再書き込みされます.これは、unionデータが一度に1つのデータしか表示されない理由です.Unionはメモリを非常に節約する場所に適していますが、現在、コンピュータがますます大きくなっているメモリにとって、このデータ形式は徐々に淘汰されています.
2.arrayテンプレートタイプ
C++のarrayクラスとvectorの違い:vectorはランダムにアクセスでき、ストレージスペースは連続的ではありませんが、arrayは連続的なストレージスペースであり、c-style stringに比べてarrayは文字列名による直接付与をサポートします.
#include
#include
#include
using namespace std;
int main()
{
array arr{1,2,3,4};
array arr1;
arr1 = arr;
char arr2[20];
char arr3[20] = "helloworld";
//arr2 = arr3;
}
3.enumerationタイプ
enum e = {red=2,blue=3,purple=5,green=7};
int color = blue;//
// e color = 4;not valid, compiler can't do that autoatically
e color = e(4);//this is Ok using a type cast
//++blue;not valid
列挙列挙タイプは付与番号のみを定義し、他の演算子は定義されていないため、++操作は合法ではありません.