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.