C++程序:将字符串集合转换为字符串数组


C++ 中的集合是包含特定类型唯一值的容器。数组或 std C++ 中的数组容器是包含特定大小元素的固定大小容器。数组类似于向量,但主要区别在于数组是固定大小的,而向量可以是动态的。C++ 中的数组容器是标准数组的包装器,这些标准数组在 C 和 C++ 中都可用。但是,这种转换存在一个问题,即 std 数组不支持其他容器具有的常用插入方法。因此,数组在转换为其他容器方面受到一些限制。让我们看一下从包含字符串的集合转换为包含字符串的数组的转换方法。

朴素方法 – 使用 std::array

将集合的元素插入数组的最简单和最容易的方法是遍历集合中的所有元素,并将它们逐一插入数组中。以下示例说明了此过程。

语法

set<string> mySet;
array<string, <size> > myArray;
int i = 0;
for ( string const &val: mySet ) {
   myArray[i] = val;
   i++;
}

算法

  • 将输入放入集合中。

  • 遍历集合中的每个元素,并将它们逐一插入数组中。

  • 显示数组的内容。

示例

#include <iostream>
#include <set>
#include <array>
using namespace std;
int main(){
   
   //initializing the list
   set<string> mySet = {"lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit"};
   array<string, 8> myArray;
   cout<< "The set contents are:" << endl;
   
   //displaying the set contents
   for ( string const &val: mySet ) {
      cout << val << ' ';
   }
   
   //copying the set contents into the array
   int i = 0;
   for ( string const &val: mySet ) {
      myArray[i] = val;
      i++;
   }
   cout << "\nThe array contents are:" << endl;
   for ( string const &val: myArray ) {
      cout << val << ' ';
   }
   return 0;
}

输出

The set contents are:
adipiscing amet consectetur dolor elit ipsum lorem sit 
The array contents are:
adipiscing amet consectetur dolor elit ipsum lorem sit 

朴素方法 – 使用普通数组

下一种方法更简单,它使用普通的 C++ 数组。我们在这里遵循相同的方法。

语法

set<string> mySet;
string myArray[<size of the set>];
int i = 0;
for ( string const &val: mySet ) {
   myArray[i] = val;
   i++;
}

算法

  • 将输入放入集合中。

  • 遍历集合中的每个元素,并将它们逐一插入数组中。

  • 显示数组的内容。

示例

#include <iostream>
#include <set>
#include <array>
using namespace std;
int main(){
   
   //initializing the list
   set<string> mySet = {"lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit"};
   string myArray[8];
   cout<< "The set contents are:" << endl;
   
   //displaying the set contents
   for ( string const &val: mySet ) {
      cout << val << ' ';
   }
   
   //copying the set contents into the array
   int i = 0;
   for ( string const &val: mySet ) {
      myArray[i] = val;
      i++;
   }
   cout << "\nThe array contents are:" << endl;
   for (int i = 0; i < 8; i++ ) {
      cout << myArray[i] << ' ';
   }
   return 0;
}

输出

The set contents are:
adipiscing amet consectetur dolor elit ipsum lorem sit 
The array contents are:
adipiscing amet consectetur dolor elit ipsum lorem sit 

结论

std C++ 库中的数组为 C 和 C++ 中存在的传统数组添加了一些功能。但是,普通数组的功能也存在于 std 数组中,其中最大的一点是固定大小。在这种情况下,向量用途更广,并且是动态的,因此它允许插入更多数据。但是,std::array 也有其应用,并且从其他容器到数组的转换方法类似于从集合到数组的转换。

更新时间: 2022年12月14日

2K+ 次查看

开启您的职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.