本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
详解C++数据结构向量和数组
飘飘悠悠 · 243浏览 · 发布于2021-06-08 +关注

向量

#include,是一个预处理器指令,它告诉编译器包含后面的任何库。在我们的例子中,这是标准vector库。


  1. #include <vector> 


创建向量的语法如下所示:



  1. std::vector<type> name; 

比如要定义一个int的向量calories_today:



  1. std::vector<int> calories_today; 

尖括号内是向量的数据类型。尖括号之后是向量的名称。

注意:vector 的类型(即里面存放的是什么数据类型)在声明后是不能改变的。

初始化向量



  1. std::vector<double> some_vector = {0.25, 0.50, 0.75, 1.00}; 

现在我们有了一个向量,我们如何访问单个元素?这就是索引发挥作用的地方。

向量是 0 索引的,这意味着第一个元素的索引为 0,第二个索引为 1,依此类推vector[index]在向量名称和内部元素的索引号之后,使用带方括号的表示法。



  1. #include <iostream> 

  2. #include <vector> 


  3. int main() 

  4.     std::vector<double> some_vector = {0.25, 0.50, 0.75, 1.00}; 

  5.     std::cout << some_vector[0] << "\n"; 

  6.     std::cout << some_vector[1] << "\n"; 

  7.     std::cout << some_vector[2] << "\n"; 

  8.     std::cout << some_vector[3] << "\n"; 


  9. 0.25 

  10. 0.5 

  11. 0.75 

添加和删除元素

要将新元素添加到向量的末尾,我们可以使用该.push_back()函数。



  1. #include <iostream> 

  2. #include <vector> 


  3. int main() 

  4.     std::vector<double> some_vector = {0.25, 0.50, 0.75, 1.00}; 

  5.     some_vector.push_back(2); 

  6.     std::cout << some_vector[4] << "\n"; 

还可以使用.pop_back().从向量的“后面”删除元素。


  1. some_vector.pop_back(); 

向量的大小

不仅存储元素;它还存储向量的大小:

.size()函数返回向量中的元素数



  1. #include <iostream> 

  2. #include <vector> 


  3. int main() 

  4.     std::vector<double> some_vector = {5,7,9,4,6,8}; 

  5.     std::cout << some_vector.size() << "\n"; 

向量操作

我们可以使用for循环,可以更改向量中的每个值



  1. #include <iostream> 

  2. #include <vector> 


  3. int main() 

  4.     std::vector<double> vector = {5, 7, 9, 4, 6, 8}; 

  5.     for (int i = 0; i < vector.size(); i++) 

  6.     { 

  7.         vector[i] = vector[i] + 10; 

  8.         std::cout << vector[i]  << "\n"; 

  9.     } 


  10. 15 

  11. 17 

  12. 19 

  13. 14 

  14. 16 

  15. 18 

编写一个程序来计算向量中偶数之和与奇数之积。

假设我们有一个向量是{2, 4, 3, 6, 1, 9}。

然后程序应该输出


  1. Sum of even numbers is 12 

  2. Product of odd numbers is 27 

具体代码如下



  1. #include <iostream> 

  2. #include <vector> 


  3. int main() 

  4.     int total_even = 0; 

  5.     int product_odd = 1; 


  6.     std::vector<int> vector = {2, 4, 3, 6, 1, 9}; 

  7.     for (int i = 0; i < vector.size(); i++) 

  8.     { 

  9.         if (vector[i] % 2 == 0){ 

  10.            total_even = vector[i] + total_even; 

  11.         }else{ 

  12.            product_odd = vector[i] * product_odd; 

  13.         } 

  14.     } 

  15.     std::cout << "Sum of even: " << total_even << "\n"; 

  16.     std::cout << "Product of odd: " << product_odd; 

数组

数组用于在单个变量中存储多个值,而不是为每个值声明单独的变量。

要声明数组,请定义变量类型,指定数组的名称,后跟方括号 并指定它应存储的元素数:


  1. int score[4]; 

我们现在已经声明了一个包含四个int数组的变量。要向其中插入值,在大括号内,我们可以使用将值放在逗号分隔的列表中,


  1. int score[4] = {1,2,3,4} 

下面是数组具体的定义和取值的方式



  1. #include <iostream> 

  2. using  namespace std; 

  3. int main() { 


  4.  //定义方式1 

  5.  //数据类型 数组名[元素个数]; 

  6.  int score[10]; 


  7.  //利用下标赋值 

  8.  score[0] = 100; 

  9.  score[1] = 99; 

  10.  score[2] = 85; 


  11.  //利用下标输出 

  12.  cout << score[0] << endl; 

  13.  cout << score[1] << endl; 

  14.  cout << score[2] << endl; 



  15.  //第二种定义方式 

  16.  //数据类型 数组名[元素个数] =  {值1,值2 ,值3 ...}; 

  17.  //如果{}内不足10个数据,剩余数据用0补全 

  18.  int score2[10] = { 100, 90,80,70,60,50,40,30,20,10 }; 

  19.   

  20.  //逐个输出 

  21.  //cout << score2[0] << endl; 

  22.  //cout << score2[1] << endl; 


  23.  //一个一个输出太麻烦,因此可以利用循环进行输出 

  24.  for (int i = 0; i < 10; i++) 

  25.  { 

  26.   cout << score2[i] << endl; 

  27.  } 


  28.  //定义方式3 

  29.  //数据类型 数组名[] =  {值1,值2 ,值3 ...}; 

  30.  int score3[] = { 100,90,80,70,60,50,40,30,20,10 }; 

  31.  for (int i = 0; i < 10; i++) 

  32.  { 

  33.   cout << score3[i] << endl; 

  34.  } 


假设我们有一个数组是{ 4,2,8,0,5,7,1,3,9 }。编写一个程序来实现冒泡排序。

具体代码如下



  1. #include <iostream> 

  2. using namespace std; 

  3. int main() { 


  4.  int arr[9] = { 4,2,8,0,5,7,1,3,9 }; 


  5.  for (int i = 0; i < 9 - 1; i++) 

  6.  { 

  7.   for (int j = 0; j < 9 - 1 - i; j++) 

  8.   { 

  9.    if (arr[j] > arr[j + 1]) 

  10.    { 

  11.     int temp = arr[j]; 

  12.     arr[j] = arr[j + 1]; 

  13.     arr[j + 1] = temp; 

  14.    } 

  15.   } 

  16.  } 


  17.  for (int i = 0; i < 9; i++) 

  18.  { 

  19.   cout << arr[i] << endl; 

  20.  } 

  21.      



c++

相关推荐

PHP实现部分字符隐藏

沙雕mars · 1312浏览 · 2019-04-28 09:47:56
Java中ArrayList和LinkedList区别

kenrry1992 · 896浏览 · 2019-05-08 21:14:54
Tomcat 下载及安装配置

manongba · 957浏览 · 2019-05-13 21:03:56
JAVA变量介绍

manongba · 953浏览 · 2019-05-13 21:05:52
什么是SpringBoot

iamitnan · 1076浏览 · 2019-05-14 22:20:36
加载中

0评论

评论
分类专栏
小鸟云服务器
扫码进入手机网页