C++ std::pair 用法與範例

本篇 ShengYu 介紹 C++ std::pair 用法與範例,std::pair 是 C++ 標準函式庫中的一個類範本,用於將兩個值捆綁在一起,形成一個有序的對(pair)。std::pair 是一個非常有用的工具,特別是用於將兩個不同類型的值關聯在一起,以便一起傳遞、返回或儲存。接下來看看 std::pair 用法範例。

要使用 std::pair 的話,需要引入的標頭檔: <utility>

C++ 建立 std::pair

以下是 C++ 建立 std::pair 的用法,

std-pair.cpp
1
2
3
4
5
6
7
8
9
// g++ std-pair.cpp -o a.out
#include <iostream>
#include <utility>

int main() {
// 建立一個 std::pair 對象,將整數和字串關聯在一起
std::pair<int, std::string> myPair(100, "Tom");
return 0;
}

訪問 std::pair 中的元素

你可以使用 firstsecond 成員來訪問 std::pair 中的第一個和第二個元素,

std-pair2.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// g++ std-pair2.cpp -o a.out
#include <iostream>
#include <utility>

int main() {
std::pair<int, std::string> myPair(100, "Tom");
std::cout << myPair.first << "\n";
std::cout << myPair.second << "\n";

int firstValue = myPair.first; // 取得第一個元素的值
std::string secondValue = myPair.second; // 取得第二個元素的值
std::cout << firstValue << "\n";
std::cout << secondValue << "\n";

return 0;
}

輸出如下:

1
2
3
4
100
Tom
100
Tom

使用 std::make_pair 建立 std::pair

std::make_pair 是一個方便的函數,用來建立 std::pair,它可以自動推斷元素的類型,

std-pair3.cpp
1
2
3
4
5
6
7
8
9
10
11
// g++ std-pair3.cpp -o a.out
#include <iostream>
#include <utility>

int main() {
auto anotherPair = std::make_pair(3.14, "Hello World");
std::cout << anotherPair.first << "\n";
std::cout << anotherPair.second << "\n";

return 0;
}

輸出如下:

1
2
3.14
Hello World

比較 std::pair

std::pair 支援比較運算子,你可以使用 ==, !=, <, >, <=, 和 >= 來比較兩個 std::pair 對象,

std-pair4.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// g++ std-pair4.cpp -o a.out
#include <iostream>
#include <utility>

int main() {
std::pair<int, std::string> pair1(100, "Tom");
std::pair<int, std::string> pair2(100, "Tom");

if (pair1 == pair2) {
std::cout << "相等\n";
} else {
std::cout << "不相等\n";
}

return 0;
}

輸出如下:

1
相等

使用 std::pair 在容器中儲存關聯資料

std::pair 可以用來在容器中儲存關聯的資料。例如,你可以使用 std::pairstd::vector 中儲存 key-value 對。

std-pair5.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// g++ std-pair5.cpp -o a.out
#include <iostream>
#include <utility>
#include <vector>

int main() {
std::vector<std::pair<int, std::string>> keyValuePairs;
keyValuePairs.push_back(std::make_pair(1, "One"));
keyValuePairs.push_back(std::make_pair(2, "Two"));
keyValuePairs.push_back(std::make_pair(3, "Three"));

for (int i = 0; i < keyValuePairs.size(); i++) {
std::cout << "key: " << keyValuePairs[i].first
<< ", value: " << keyValuePairs[i].second << "\n";
}

return 0;
}

輸出如下:

1
2
3
key: 1, value: One
key: 2, value: Two
key: 3, value: Three

使用 tie 取得回傳 std::pair 的元素值

在某些情況函式回傳 std::pair 時,可以使用 std::tie 來接收,這樣可以直接用變數接收 std::pair 的元素值,要用 std::tie 的話要引用 tuple 的標頭檔 <tuple>

std-pair6.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// g++ std-pair6.cpp -o a.out
#include <iostream>
#include <utility>
#include <vector>
#include <tuple>

std::pair<int, std::string> getStudent() {
return std::make_pair(100, "Tom");
}

int main() {
int id;
std::string name;

std::tie(id, name) = getStudent();

std::cout << "id: " << id << ", name: " << name << "\n";

return 0;
}

輸出如下:

1
id: 100, name: Tom

以上就是 C++ std::pair 用法與範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它相關文章推薦
C/C++ 新手入門教學懶人包
std::string 用法與範例
std::vector 用法與範例
std::sort 用法與範例
std::map 用法與範例
std::set 用法與範例