簡體   English   中英

將字符串2d數組傳遞給函數

[英]passing string 2d array to a function

我以下列方式將字符串2d數組傳遞給函數。 它是正確的還是可以做得更好?

#include<iostream>
#include<string>
using namespace std;

void print_name(string name[])
{
    cout<<name[0];
}

int main()
{
    string name[4];
    name[0] = "abc";
    name[1] ="xyz";
    name[2] = "pqr";
    name[3]= "xyq";

    print_name(name);
    return 0;
}

在C ++中,更好的方法是傳遞std::vector作為參數。

void print_name(const std::vector<std::string>& name)

std::vector<std::string> name{"abc", "xyz","pqr","xyq"};

print_name(name);

傳遞C風格數組的問題在於,您調用的函數不知道它的結束位置。 如果必須使用固定大小的數組,更好的方法是傳遞std::array<std::string,4>

void print_name(std::array<std::string,4>& names) ...

如果使用std::vector<std::string>是可以接受的,那么它將為您的代碼提供更大的靈活性:

void print_name(std::vector<std::string>& names) ...

如果以上都不適合您,請考慮將數組項的數量與數組一起傳遞,以便print_name知道它可以獲取的項目:

void print_name(std::string names[], int count) ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM