C++_数组-结构体-枚举-联合体

C++

1.相同类型的数据
    01. C++数组(array)是一种顺序容器sequence container,是由单一数据类型元素组成的一个有序集合
      元素类型 元素个数 数组名称
       使用索引来标识和访问元素
       数组是存放类型相同的对象的容器,数组的大小确定不变,不能随意向数组中增加元素
       不能直接将数组的内容拷贝给其他数组作为初始值,也不能用数组为其他数组赋值
    02.C++中vector为类模板
       
      #include <vector>
        vector是类型相同的对象的容器,vector的大小可以变化,可以向数组中增加元素
    03.array是c++ 11新增的序列容器 
      #include <array>
  02.枚举 enum  C++的enum工具提供了另一种创建符号常量的方式,这种方式可以代替const。它还允许定义新类型  
	  
2.不同类型的数据
   01.数据类型
       001.共用体(union)是一种数据格式,它能够存储不同的数据类型,但只能同时存储其中的一种类型--条件是在不同的时间进行
	      共用体每次只能存储一个值,因此它必须有足够的空间存储空间占用最大的成员
		  的用途之一:当数据项使用两种或更多种格式(但不会同时使用)时,可节省空间
       003.结构体 struct c++对结构体进行了扩展
		 C++的结构体可以包含函数,这样,C++的结构体也具有类的功能,与class不同的是,结构体包含的函数默认为public,而不是private。
		  从struct继承默认是public继承
   02.通过类的方式
      通过成员变量-其数据类型可能是int,float,double,char[],std::string,std::vector
	  
	  
3.函数-数组-指针-引用

访问数据的方式

 访问元素--通过索引
     访问数组元素--每个元素都分配有一个称为下标的数字。
	         下标用作一个索引来精确定位一个数组中的特定元素,第一个元素分配下标 0,第二个元素分配下标 1,依此类推。
 通过成员变量--通过成员变量名
   .     . 是结构体 的成员运算符
   ->   -> 是指针   指向其成员的运算符
   点运算符“.”应用于实际的对象,箭头运算符“->”与一个指针对象的指针一起使用
   ::   ::是域作用符,是各种域性质的实体(比如类(不是对象)/名字空间等)调用其成员专用的 使用域作用符来加以区别;
       前面没写具体的域名,就是指默认域

共享和保护数据

保护数据:作用域 生存周期 可见性 
   私有数据成员不能在类体外被访问-可见性
   类对象之间也不能互相访问对方的私有成员
数据既需要保持其私有性,又需要其有共享性
   
   //全局变量的作用域-整个程序运行期间有效-但会因一些原因而不可见
   // 局部模块生命了同名的变量,则在局部的模块中,可见的时局部变量,全局变量不可见
   //局部变量只限于相应的程序模块中,离开了相应模块,局部变量不再存在
   
   #include <iostream>
   using namespace std;
   void fn1();
   int x=1,y=2;
   
   int main()
    {
       cout << "main x and y " <<x<<"  "<<y<<endl;
       int x = 10,y=20;
       cout <<"local var same name in  main x and y value :  " << x<<"  "<< y <<endl;
       cout <<"step into fn1()..same name var leave main" << endl;
       fn1();
       cout<<"back to main x y : "<< x<<"  "<<y<<endl;
       return 0;
     }
   void fn1()
   {
       int y =200;
       cout<< "in local fn1 x and  y: " << x<< "  "<<y <<endl;
   }

遍历数组

//传统下标法
 int main( ){
     int a[10] = {1,2,3,4,5,6,7,8,9,10};
     for (int i=0;i<10;i++){
         cout<<a[i]<<endl;
     }
 }
 //数组是连续的空间,所以地址也是连续的。所以,数组名即为数组首元素地址。数组名加数组长度-1即为数组尾元素地址
 int main( ){
     int a[10] = {1,2,3,4,5,6,7,8,9,10};
     for (int *p=a;p!=a+10;p++){
         cout<<*p<<endl;
     }
 }
 // C++11中增加的功能,可以方便的对同一类型的范围数据做遍历
 // C++11增加了一个行特性foreach(Range-based for loops ,基于范围的for循环)。可以对集合、数组、初始化列逐个访问
 int main( ){
     int a[10] = {1,2,3,4,5,6,7,8,9,10};
     for (int i : a) {
         cout<< i <<endl;
     }
 }
 
 //迭代器是用来访问容器内元素的类模板
 // 同时我们也可以使用std::for_each完成同样的功能
 // 为了统一代码并让数组支持迭代器,C++11提供了两个新模版函数std::begin、std::end,这两个模版函数可以作用于容器和数组
  int main( ){
     int a[10] = {1,2,3,4,5,6,7,8,9,10};
     for(int* p = begin(a);p!=end(a);p++){
         cout<<*p<<endl;
     }
 }
 
 
自定义支持foreach访问的集合类,为了支持foreach遍历,类内部只需要实现begin和end成员函数

Python访问数据的方式

pandas 
     [ ],这是一种最常用的数据访问方式
	    数字切片和标签切片两种情况
     loc/iloc,可能是除[]之外最为常用的两种数据访问方法,其中loc按标签值(列名和行索引取值)访问、iloc按数字索引访问
     where filter
      get		 

python遍历列表

  利用列表长度和 range()函数遍历
  使用 for 循环遍历
  利用 iter() 迭代器遍历
  利用 enumerate()函数遍历

参考

 https://www.cnblogs.com/haruyuki/p/15680044.html

python

tuple list
   可变和不可变

Series  相同数据类型
     Pandas Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型
	      Series 由索引(index)和列组成--
		   data 元素  dtype 数据类型
		   name 名称
		   index  索引
DataFrame
   不同的数据类型

 C语言还规定了几个常见的自定义类型:结构体、枚举、联合体
     C语言中,可以使用结构体来实现存放一组不同类型的数据
    在C语言中,结构体(struct)是复合数据类型的一种。
	同时也是一些元素的集合,这些元素称为结构体的成员,且这些成员可以为不同的类型
    ,成员一般用名字访问。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。
	注:在C语言中,结构体不能包含函数。C语言中的结构体只能描述一个对象的状态,不能描述一个对象的行为 
posted @ 2022-12-19 17:38  辰令  阅读(135)  评论(0)    收藏  举报