C++ 学习笔记
数组(Array)
-
指针定义数组
#include <iostream> using namespace std; #include <iomanip> using std::setw; int main() { // 一维数组初始化 int n[10]; for (int i = 0; i < 10; i++) { n[i] = i + 1; // 设置元素 i 为 i + 1 } *(n + 2) = 520; // n[2] 赋值为 500 // 指针初始化 int* ip = NULL; int* ip_1 = NULL; // 声明指针变量 // 指针与一维数组 ip = n; // 在指针变量中存储数组首个元数的地址 n = &n[0] //cout << "地址" << ip << "指针" << *ip << endl; // 一元运算符* 来返回位于操作数所指定地址的变量的值 int i = 0; while (ip <= &n[9]) { //cout << "address: " << &n[i] << setw(7) << "var: " << n[i] << endl; //cout << "ip: " << ip << setw(7) << "*ip: " << *ip << endl; ip++; i++; } // 指针与二维数组 }
-
指针数组
#include <iostream> using namespace std; #include <vector> #include <iomanip> using std::setw; int main() { vector<int> n(10,2); int *ptr[10]; // 赋值为整数的地址 for (int i = 0; i < 10; i++) { ptr[i] = &n[i]; // 赋值为整数的地址 cout << "Value of var[" << i << "] = " << *ptr[i] << endl; } // 一个指向字符的指针数组来存储一个字符串列表 const char* names[4] = { "Zara Ali", // names0[8] = "Zara Ali" 字符串等价于一个包括字符元数的数组 "Hina Ali", // names[1] = names1 = &names[1][0] "Nuha Ali", // *names[1] = *names1 = *(&names[0][0]) = names[1][0] "Sara Ali", // *(names[i]+j) = *namesi+j = *(&names[i][j]) = names[i][j] }; for (int i = 0; i < 4; i++) { cout << " --- names["<<i<<"] = " << names[i] << endl; cout << " --- *names[" << i << "] = " << *names[i] << endl; cout << " --- (*names[" << i << "] + 2) = " << *(names[i] + 2) << endl; cout << " ------------------------------------ " << endl << endl << endl << endl; } }
-
Vector
#include <string.h> #include <vector> #include <iostream> #include <algorithm> using namespace std; int main() { int N=5, M=6; vector<int> b(10,1); // 定义长度为10,初值都为1的容器 vector<int>obj(b.begin(), b.begin()+7); for(int i=0;i<7;i++)//size()容器中实际数据个数 { obj.insert(obj.begin()+i,i); // 在第i个元素后面插入M; cout<<obj[i]<<","; } cout<<"\n"<<endl; obj.erase(obj.begin()+1,obj.begin()+6); // 删除第2~6个元素; sort(obj.begin(),obj.begin()+6); //从小到大 reverse(obj.begin(),obj.begin()+6);//从大到小 vector<int>::iterator it;//声明一个迭代器,来访问vector容器,作用:遍历或者指向vector容器的元素 for(it=obj.begin();it!=obj.end();it++) { cout<<*it<<" "; } return 0; } }
-
二维数组
#include <string.h> #include <vector> #include <iostream> #include <algorithm> using namespace std; int main() { // Vector定义二维数组 vector<vector<int> > obj(5, vector<int>(4,1)); for(int i=0; i< obj.size(); i++)//输出二维动态数组 { for(int j=0;j<obj[i].size();j++) { cout<<obj[i][j]<<" "; } cout<<"\n"; } return 0; }