C++程序将一个数组推入另一个数组中

c++程序将一个数组推入另一个数组中

A linear sequential data structure called an array is used to store homogeneous data in a series of memory regions. An array needs to have certain features to insert, delete, traverse, and update elements effectively, just like other data structures do. Our arrays in C++ are static. In addition, C++ offers a few dynamic array structures. There may be a maximum of Z elements that can be stored inside a static array. And there are currently n elements in it. In this article, we will see how to push the elements of one array inside another array in C++.

理解概念并举例说明

Given array A = [10, 14, 65, 85, 96, 12, 35, 74, 69]Another given array B = [56, 42, 15, 18, 20, 32]Pushing the elements of B into A, signifies that A becomes:A = [10, 14, 65, 85, 96, 12, 35, 74, 69, 56, 42, 15, 18, 20, 32]

登录后复制

在上面的示例中,很明显我们有两个数组A和B。将B推入A意味着将B中的所有元素插入到数组A中。这些元素将被添加到A的末尾。但是要实现这一点,我们必须检查一件事情,即A中剩余的空位(即A的最大大小减去A中现有元素的数量)是否与B中的元素数量相同或更大。否则,我们无法将它们推入A中。让我们看一下算法以及C++实现代码。

Algorithm

take the array A and B as input, the number of elements n in A as input, the number of elements m in B as input

如果 A 有足够的空间来容纳整个 B,则

立即学习“C++免费学习笔记(深入)”;

for each element e in B, do

append e to array A

结束循环

end if

return array A and new size n

Example

#include # define Z 50using namespace std;void displayArr(int arr[], int n){   for( int i = 0; i = m ){      for( int i = 0; i 

输出

First Array: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, Second Array: 56, 84, 23, 12, 17, 19, 65, 32, Array A after pushing B:57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 56, 84, 23, 12, 17, 19, 65, 32,

登录后复制

Using Dynamic Arrays or Vectors

相同的事情可以使用向量来完成。向量是C++ STL中存在的动态数组。如果我们考虑使用向量,我们就不需要关心插入元素时的可用空间。因为向量是动态的,它会在需要时自动添加新的插槽。算法与可用插槽检查相同。

Algorithm

take the array A and B as input, the number of elements n in A as input, the number of elements m in B as input

for each element e in B, do

append e to array A

结束循环

return array A and new size n

Example

#include #include # define Z 50using namespace std;void displayArr( vector v ){   for( int i = 0; i  &A, vector B ){   for( int i = 0; i  A = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14};   vector B = {56, 84, 23, 12, 17, 19, 65, 32};   cout 

输出

First Array: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, Second Array: 56, 84, 23, 12, 17, 19, 65, 32, Array A after pushing B:57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 56, 84, 23, 12, 17, 19, 65, 32,

登录后复制

在向量中使用insert()函数

之前的方法是一个手动的过程。然而,我们可以使用vector STL中的insert()函数来实现相同的功能。insert()函数接受一个位置指针(使用迭代器)和一个迭代器,从一个容器对象中复制元素并将其从位置索引插入到另一个容器对象中。让我们看一下C++的实现以获得清晰的视图。

Example

#include #include # define Z 50using namespace std;void displayArr( vector v ){   for( int i = 0; i  &A, vector B ) {    A.insert( A.end(), B.begin(), B.end() ); }int main() {   vector A = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14};      vector B = {56, 84, 23, 12, 17, 19, 65, 32};      cout 

输出

First Array: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, Second Array: 56, 84, 23, 12, 17, 19, 65, 32, Array A after pushing B:57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 56, 84, 23, 12, 17, 19, 65, 32,

登录后复制

Conclusion

在本文中,我们看到了几种不同的方法来将一个数组元素插入或推送到另一个数组的末尾。在第一个示例中,我们使用简单的C++数组,需要特别注意静态数组中可用空间的情况。在接下来的两种方法中,我们不需要关心这一点,因为我们使用的是动态的向量,它会在需要时自动分配空间。

以上就是C++程序将一个数组推入另一个数组中的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2583893.html

(0)
上一篇 2025年3月6日 14:40:59
下一篇 2025年2月25日 12:48:20

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • C++程序用于检查两个字母堆栈是否可以被清空

    假设有2n封信,每封信上都写有1到n之间的整数。有两封信上写有相同的数字。这些信被分成m堆,第i堆上有stack[i]封信。我们的任务是以以下方式清空所有堆: 我们必须选择任意两堆,并从两堆中移除顶部的信件。 我们所移除的信件必须具有相同的…

    2025年3月6日
    200
  • 编写一个C程序,使用elseif语句将数字打印为单词

    问题 在不使用 switch case 的情况下,如何使用 C 编程语言以文字形式打印给定的数字? 解决方案 在此程序中,我们检查三个条件以用单词打印两位数 – if(no99) if(no99) p> 输入的数字不是两位…

    2025年3月6日
    200
  • C++程序比较两个字符串的字典序

    字典序字符串比较是指字符串按照字典顺序进行比较。例如,如果有两个字符串’apple’和’appeal’,第一个字符串将排在后面,因为前三个字符’app’是相同的。然后对…

    2025年3月6日
    200
  • C程序验证IP地址的代码

    在这个程序中,我们将看到如何使用C语言验证IP地址。IPv4地址以点十进制表示法表示。有四个十进制数(都在0到255之间)。这四个数字由三个点分隔。 一个有效的IP示例是:192.168.4.1 要验证IP地址,我们应该按照以下步骤进行: …

    2025年3月6日
    200
  • 在C程序中使用递归函数的辅助空间?

    这里我们将看到递归函数调用如何需要辅助空间。它与普通函数调用有何不同? 假设我们有一个如下所示的函数 – long fact(int n){   if(n == 0 || n == 1)      return 1;   ret…

    2025年3月6日
    200
  • C程序中LCS的空间优化解决方案?

    在这里,我们将看到一种针对 LCS 问题的空间优化方法。 LCS是最长公共子序列。如果两个字符串是“BHHUBC”和“HYUYBZC”,那么子序列的长度是4。动态规划方法已经是它们的一种,但是使用动态规划方法,会占用更多的空间。我们需要 m…

    2025年3月6日
    200
  • 集合划分是NP完全的

    将包裹集合问题(Set Parcel)翻译成中文,这是一个NP完全问题,任务是确定给定的一组正整数是否可以分成两个子集,使得它们的总和相等。NP完全意味着目前没有已知的多项式时间算法能够解决所有情况,而验证一个可能的解决方案应该可以在多项式…

    2025年3月6日
    200
  • C程序在数组中找到最小和最大的质数

    问题陈述 给定一个包含 n 个正整数的数组。我们必须找到素数具有最小值和最大值的数字。 如果给定的数组是 – arr [] = {10, 4, 1, 12, 13, 7, 6, 2, 27, 33}then minimum pr…

    2025年3月6日
    200
  • C++程序示例,展示异常处理

    假设有一个函数用于计算一些复杂的数学运算。但在运算过程中,可能会发生一些异常。我们必须处理可能发生的不同类型的异常,并执行以下操作。 如果计算机无法为计算分配内存,我们必须打印“内存不足!”如果发生任何其他与C++相关的异常,我们必须打印“…

    2025年3月6日
    200
  • C程序查找形成回文的最小插入次数

    回文是一个与其反转相等的字符串。给定一个字符串,我们需要找到使该字符串成为回文所需的最小插入任意字符的数量。我们将看到三种方法:首先是递归方法,然后我们将记忆化这个解决方案,最后,我们将实现动态规划方法。 递归方法 示例 #include …

    2025年3月6日
    200

发表回复

登录后才能评论