2017-07-18 24 views
-3

如何在C++中創建一對長和向量?以下給我語法錯誤,我不明白原因?在C++中創建長對和向量時編譯錯誤

#include <iostream> 
#include <vector> 
#include <utility> 

using namespace std; 

int main() 
{ 
    make_pair<int,vector<long> > lvp; 
} 

導致這個錯誤:

$ g++ -std=c++11 pair_vector.cpp 

pair_vector.cpp: In function ‘int main()’: 

pair_vector.cpp:6:32: error: expected ‘;’ before ‘lvp’ 
    make_pair<int,vector<long> > lvp; 
           ^
+2

'std :: make_pair'是一個函數...請再次閱讀文檔。 – Rakete1111

+1

你的變量需要一個* type *,它將是'std :: pair >'。 'std :: make_pair'是一個函數,你不能用它聲明一個變量。 – CoryKramer

+2

由於不相關的原因而無法編譯的代碼並且沒有關注文檔並不是一個好問題。我已經投票決定將其視爲由簡單的印刷錯誤引起的。 –

回答

4

make_pair是一個函數,所以你會使用它像:

auto lvp = std::make_pair(1, std::vector<long>{ 1, 2, 3, 4 }); 

你會適合只使用語法std::pair

std::pair<int,vector<long> > lvp; 

注意與C++ 11日起,你不再需要把尖括號之間的空間,以防止誤解析要麼,所以你可以使用:

std::pair<int,vector<long>> lvp; 

...如果你首選。