2014-09-11 110 views
0

我得到了一個具有兩個變量的結構,char first_name和last_name。如何可以聲明如first_name和last_name當我使用的std ::矢量first_name的[50],它被拋出錯誤類型vector<char>爲結構變量創建類型向量<type>的對象

struct employee{ 
    char first_name[50]; 
    char last_name[50]; 
    } 

的對象:預期類型說明符。我應該如何解決這個問題

+1

你爲什麼要這麼做?爲什麼不使用'std :: string'呢? – 2014-09-11 00:17:26

回答

1
如果你想有作爲載體的員工列表

struct employee{ 
    std::string first_name; 
    std::string last_names; 
}; 

std::vector<employee> myvec; 
employee e1; 
e1.first_name = "tom"; 
e1.last_name = "joe"; 
myvec.push_back(e1); 

std::cout << myvec[0].first_name << std::endl; // tom 
std::cout << myvec[0].last_name << std::endl; // joe 

現在如果你想第一個列表姓和名作爲字符串,在員工結構,則:

struct employees{ 
     std::vector<std::string> first_names; 
     std::vector<std::string> last_name; 
    }; 

    std::string firstname = "tom"; 
    std::string lastname = "joe"; 

    employees e; 
    e.first_names.push_back(firstname); 
    e.last_names.push_back(lastname); 

    std::cout << e.first_names[0] << std::endl; // tom 
    std::cout << e.last_names[0] << std::endl; // joe 

我認爲有員工的結構和創建它們的列表更有意義,但我不知道你打算如何使用它。

1

完全按照你寫的:

struct employee{ 
    std::vector<char> first_name; 
    std::vector<char> last_name; 
};