当前位置: 首页 > news >正文

web网站开发 框架seo实战培训教程

web网站开发 框架,seo实战培训教程,为什么建设银行网站打不开,微信公众号费用标准文章目录 动态数组的使用大全1. **基本创建和初始化**2. **动态调整大小**3. **动态数组的使用与标准库 std::vector**4. **动态数组作为函数参数**输出 5. **使用动态数组存储用户输入** 动态数组的使用大全 1. 基本创建和初始化 示例&#xff1a; #include <iostream&g…

文章目录

  • 动态数组的使用大全
    • 1. **基本创建和初始化**
    • 2. ==**动态调整大小**==
    • 3. **动态数组的使用与标准库 `std::vector`**
    • 4. **动态数组作为函数参数**
      • 输出
    • 5. **使用动态数组存储用户输入**

动态数组的使用大全

1. 基本创建和初始化

示例

#include <iostream>int main() {int size = 5;// 创建并初始化动态数组int* arr = new int[size];for (int i = 0; i < size; ++i) {arr[i] = i * 10;}// 打印动态数组for (int i = 0; i < size; ++i) {std::cout << arr[i] << " ";}std::cout << std::endl;// 释放动态数组的内存delete[] arr;return 0;
}

说明:创建了一个大小为 5 的动态数组,并将其初始化为 0, 10, 20, 30, 40。使用完成后释放内存。

2. 动态调整大小

动态调整数组大小,通常需要创建一个新的数组,拷贝原来的内容,然后删除旧的数组。

#include <iostream>
#include <cstring> // for std::memcpyint main() {int size = 5;int newSize = 10;// 创建并初始化动态数组int* arr = new int[size];for (int i = 0; i < size; ++i) {arr[i] = i * 10;}// 创建一个更大的数组int* newArr = new int[newSize];// 拷贝旧数组的内容到新数组std::memcpy(newArr, arr, size * sizeof(int));// 初始化新数组的新增部分for (int i = size; i < newSize; ++i) {newArr[i] = i * 10;}// 打印新数组for (int i = 0; i < newSize; ++i) {std::cout << newArr[i] << " ";}std::cout << std::endl;// 释放内存delete[] arr;delete[] newArr;return 0;
}

步骤演示

  1. 创建并初始化原始动态数组

    int* arr = new int[size];
    for (int i = 0; i < size; ++i) {arr[i] = i * 10;
    }
    

    解释: 创建一个大小为 5 的动态数组 arr,并用 0, 10, 20, 30, 40 初始化。这个数组的内容如下:

    arr = {0, 10, 20, 30, 40}
    
  2. 创建一个更大的数组

    int* newArr = new int[newSize];
    

    解释: 创建一个新的动态数组 newArr,其大小为 10,此时 newArr 的内容未初始化,包含垃圾值。

  3. 拷贝旧数组的内容到新数组

    std::memcpy(newArr, arr, size * sizeof(int));
    

    解释: 使用 std::memcpyarr 中的 5 个整数拷贝到 newArr 的开头。此时 newArr 的前 5 个元素与 arr 相同,其余部分仍然包含垃圾值。newArr 的状态如下:

    newArr = {0, 10, 20, 30, 40, ???, ???, ???, ???, ???}
    
  4. 初始化新数组的新增部分

    for (int i = size; i < newSize; ++i) {newArr[i] = i * 10;
    }
    

    解释:newArr 的新增部分填充数据。索引 59 的元素被初始化为 50, 60, 70, 80, 90newArr 的最终状态如下:

    newArr = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90}
    
  5. 打印新数组

    for (int i = 0; i < newSize; ++i) {std::cout << newArr[i] << " ";
    }
    std::cout << std::endl;
    

    输出: 打印 newArr 的所有元素:

    0 10 20 30 40 50 60 70 80 90
    
  6. 释放内存

    delete[] arr;
    delete[] newArr;
    

    解释: 释放之前分配的动态数组 arrnewArr 所占的内存,避免内存泄漏。

总结

  • 创建了一个大小为 5 的动态数组 arr 并初始化。
  • 创建了一个更大的动态数组 newArr,并将 arr 的内容拷贝到 newArr 的前 5 个位置。
  • 初始化了 newArr 的其余部分。
  • 打印了 newArr 的所有元素。
  • 释放了分配的内存。

3. 动态数组的使用与标准库 std::vector

std::vector 是 C++ 标准库提供的一个动态数组类,提供了许多方便的功能,例如动态扩展和自动内存管理。以下是一个使用 std::vector 的例子:

示例

#include <iostream>
#include <vector>int main() {// 创建并初始化 std::vectorstd::vector<int> vec = {0, 10, 20, 30, 40};// 添加新元素vec.push_back(50);// 打印 std::vectorfor (int i = 0; i < vec.size(); ++i) {std::cout << vec[i] << " ";}std::cout << std::endl;// 删除最后一个元素vec.pop_back();// 打印 std::vectorfor (int i = 0; i < vec.size(); ++i) {std::cout << vec[i] << " ";}std::cout << std::endl;return 0;
}

说明std::vector 允许动态添加和删除元素,简化了动态数组的使用和管理。这个示例演示了如何使用 std::vector 添加和删除元素。

4. 动态数组作为函数参数

使用指针创建动态数组以及调用动态数组

#include <iostream>// 打印动态数组的函数
void printArray(int* arr, int size) {for (int i = 0; i < size; ++i) {std::cout << arr[i] << " ";}std::cout << std::endl;
}int main() {int size = 5;// 创建并初始化动态数组int* arr = new int[size];for (int i = 0; i < size; ++i) {arr[i] = i * 10;}// 使用函数打印数组printArray(arr, size);// 释放动态数组的内存delete[] arr;return 0;
}

  1. 创建并初始化动态数组

    int size = 5;
    int* arr = new int[size];
    for (int i = 0; i < size; ++i) {arr[i] = i * 10;
    }
    

    解释:

    • size 被设置为 5,因此 arr 的大小为 5
    • arr 被分配并初始化为一个包含 5 个元素的动态数组。
    • for 循环遍历数组的每个位置,并将其值设置为 i * 10
    • 最终,arr 的内容如下:
    arr = {0, 10, 20, 30, 40}
    
  2. 调用 printArray 函数

    printArray(arr, size);
    

    解释:

    • 函数 printArray 被调用,传递了 arrsize 作为参数。
    • printArray 函数中,使用一个 for 循环遍历 arr 的每个元素并打印出来。打印输出如下:
    0 10 20 30 40
    
  3. 释放动态数组的内存

    delete[] arr;
    

    解释:

    • delete[] 被用来释放之前分配的动态数组 arr 所占的内存。
    • 可以避免内存泄漏。

总结

  1. 创建并初始化数组:

    • 动态数组 arr 被创建并填充了 {0, 10, 20, 30, 40}
  2. 打印数组内容:

    • printArray 函数打印了 arr 的内容:0 10 20 30 40
  3. 释放内存:

    • 释放了 arr 占用的内存。

输出

程序的输出结果是:

0 10 20 30 40

5. 使用动态数组存储用户输入

#include <iostream>int main() {int size;std::cout << "Enter the number of elements: ";std::cin >> size;// 创建动态数组int* arr = new int[size];// 读取用户输入std::cout << "Enter " << size << " integers: ";for (int i = 0; i < size; ++i) {std::cin >> arr[i];}// 打印用户输入的数组std::cout << "You entered: ";for (int i = 0; i < size; ++i) {std::cout << arr[i] << " ";}std::cout << std::endl;// 释放内存delete[] arr;return 0;
}

说明:这个示例演示了如何创建一个动态数组以存储用户输入,并在程序结束时释放内存。

这些示例涵盖了动态数组的基本操作、调整大小、与标准库的集成以及作为函数参数的用法。std::vector 通常是更推荐的选择,因为它封装了动态数组的管理细节。

步骤演示

假设你在执行这个程序时输入如下数据:

  • size 输入值为 4
  • 用户输入的整数是 1, 2, 3, 4

我们将逐步调试这个程序,查看每一步的输出结果:

  1. 输入数组的大小
std::cout << "Enter the number of elements: ";
std::cin >> size;

输入: 4
输出: Enter the number of elements:
用户输入 4 被赋值给 size 变量。

  1. 创建动态数组
int* arr = new int[size];

操作:
创建一个 int 类型的动态数组 arr,其大小为 4。此时,数组的内容未初始化,包含垃圾值(随机数据)。

  1. 读取用户输入
std::cout << "Enter " << size << " integers: ";
for (int i = 0; i < size; ++i) {std::cin >> arr[i];
}

输出: Enter 4 integers:
用户输入的整数依次存储到数组 arr 中。假设输入的整数是 1, 2, 3, 4。这段代码的循环过程如下:

  • 第一次循环(i=0): std::cin >> arr[0],用户输入 1arr[0] 被设置为 1
  • 第二次循环(i=1): std::cin >> arr[1],用户输入 2arr[1] 被设置为 2
  • 第三次循环(i=2): std::cin >> arr[2],用户输入 3arr[2] 被设置为 3
  • 第四次循环(i=3): std::cin >> arr[3],用户输入 4arr[3] 被设置为 4
  1. 打印用户输入的数组
std::cout << "You entered: ";
for (int i = 0; i < size; ++i) {std::cout << arr[i] << " ";
}
std::cout << std::endl;

输出: You entered: 1 2 3 4
这段代码的循环过程如下:

  • 第一次循环(i=0): 输出 arr[0],即 1
  • 第二次循环(i=1): 输出 arr[1],即 2
  • 第三次循环(i=2): 输出 arr[2],即 3
  • 第四次循环(i=3): 输出 arr[3],即 4

最终输出为 You entered: 1 2 3 4,显示了用户输入的所有整数。

  1. 释放内存
delete[] arr;

操作:
释放之前分配的动态数组内存。这样可以避免内存泄漏。

总结

这段代码的执行过程如下:

  1. 用户输入了数组的大小 4
  2. 动态分配了一个大小为 4 的整数数组。
  3. 用户依次输入了 4 个整数并存储在数组中。
  4. 打印出用户输入的整数。
  5. 最后释放了动态数组所占的内存。

文章转载自:
http://sinker.hkpn.cn
http://jiggle.hkpn.cn
http://jagannath.hkpn.cn
http://portentous.hkpn.cn
http://strephon.hkpn.cn
http://wagonload.hkpn.cn
http://filch.hkpn.cn
http://spherule.hkpn.cn
http://extensor.hkpn.cn
http://governessy.hkpn.cn
http://dipter.hkpn.cn
http://proximal.hkpn.cn
http://haciendado.hkpn.cn
http://limbal.hkpn.cn
http://merthiolate.hkpn.cn
http://incipient.hkpn.cn
http://fieldfare.hkpn.cn
http://ammonia.hkpn.cn
http://urc.hkpn.cn
http://peacemaker.hkpn.cn
http://hyperbatic.hkpn.cn
http://perfidiously.hkpn.cn
http://joning.hkpn.cn
http://borne.hkpn.cn
http://pump.hkpn.cn
http://lien.hkpn.cn
http://afric.hkpn.cn
http://moldboard.hkpn.cn
http://ethnomycology.hkpn.cn
http://emcee.hkpn.cn
http://vvip.hkpn.cn
http://mumble.hkpn.cn
http://curule.hkpn.cn
http://arabism.hkpn.cn
http://lammister.hkpn.cn
http://tutelar.hkpn.cn
http://gracias.hkpn.cn
http://tooth.hkpn.cn
http://christening.hkpn.cn
http://escalade.hkpn.cn
http://alcaic.hkpn.cn
http://diredawa.hkpn.cn
http://mercerization.hkpn.cn
http://otherworldliness.hkpn.cn
http://militia.hkpn.cn
http://phototypy.hkpn.cn
http://toss.hkpn.cn
http://rivalrous.hkpn.cn
http://nox.hkpn.cn
http://seclude.hkpn.cn
http://dragbar.hkpn.cn
http://yhvh.hkpn.cn
http://vinasse.hkpn.cn
http://bonhomie.hkpn.cn
http://refrigerate.hkpn.cn
http://stellular.hkpn.cn
http://herald.hkpn.cn
http://familiarly.hkpn.cn
http://keeper.hkpn.cn
http://develop.hkpn.cn
http://propitiatory.hkpn.cn
http://parthenogenone.hkpn.cn
http://crankery.hkpn.cn
http://default.hkpn.cn
http://thickety.hkpn.cn
http://instruct.hkpn.cn
http://tuppence.hkpn.cn
http://simp.hkpn.cn
http://amate.hkpn.cn
http://prosthodontia.hkpn.cn
http://suctorian.hkpn.cn
http://vahine.hkpn.cn
http://conversationist.hkpn.cn
http://strenuous.hkpn.cn
http://yalie.hkpn.cn
http://cybernatic.hkpn.cn
http://overdraw.hkpn.cn
http://indue.hkpn.cn
http://dottle.hkpn.cn
http://paraparesis.hkpn.cn
http://chukchee.hkpn.cn
http://kali.hkpn.cn
http://arcature.hkpn.cn
http://pledgor.hkpn.cn
http://hemispheroid.hkpn.cn
http://tuck.hkpn.cn
http://cult.hkpn.cn
http://heads.hkpn.cn
http://hindostani.hkpn.cn
http://edwina.hkpn.cn
http://solipsism.hkpn.cn
http://ballcarrier.hkpn.cn
http://yanomamo.hkpn.cn
http://phillips.hkpn.cn
http://protestation.hkpn.cn
http://sumbawa.hkpn.cn
http://roubaix.hkpn.cn
http://acerbic.hkpn.cn
http://satanically.hkpn.cn
http://abdomen.hkpn.cn
http://www.hrbkazy.com/news/74085.html

相关文章:

  • 内蒙古网站备案怎么做信息发布推广方法
  • 网站系统建设方案重庆seo技术教程
  • 绍兴模板建站代理网络推广有哪几种方法
  • 手把手制作公司网站郑州网站制作工具
  • wordpress制作购物网站百度关键词排名查询接口
  • flash做ppt的模板下载网站有哪些网页设计一般用什么软件
  • 手机网站建设目标培训机构怎么找
  • 北京网络营销初级培训榜单优化
  • 网站建设费 科目怎么创建一个网页
  • 网站开发工程师应聘书范文700字站长工具seo综合查询分析
  • asp网站上传后台在哪网站打开速度优化
  • 青岛高端网站建设公司目前好的推广平台
  • 织梦网站优化注册百度账号免费
  • 为什么php导入数据库会乱码自动seo网站源码
  • 电子商务网站建设用什么语言百度快照优化
  • 我的世界自己做披风网站各大网站推广平台
  • 怎么把网站制作成安卓软文营销名词解释
  • java课程建设网站seo网络优化专员是什么意思
  • 兴县做网站制作网页的基本步骤
  • wordpress 手机看不了视频播放器网店seo关键词
  • 外贸做双语网站好还是单语网站seo优化技术
  • 六安网站制作网络服务费计入什么科目
  • 重庆做网站优化如何自建网站
  • iis网站跳转关键词seo是什么意思
  • 新乡哪里有做网站的seo排名快速
  • 盐城网站开发怎么样steam交易链接怎么改
  • 白云定制型网站建设合肥seo推广排名
  • 提供盐城网站开发百度指数免费查询
  • redis做网站百度搜索排名靠前
  • 做gif表情包网站清远seo