2014-02-27 37 views
0

我有一個存儲在向量中的字符串(在這種情況下爲elements)。我想在特定索引處取一個字符串,並且存儲在一個名爲x的變量中。但是,它似乎並沒有工作。在一個空白的輸出結果如下:在向量中分配對字符串的引用

string x = elements->at(index); 
cout << x; 

但是,如果我這樣做:

cout << elements->at(index); 

在指數中的字符串返回罰款。

我要素的定義,像這樣:

vector<string>* elements; 
elements = new vector<string>(size); 

我在這裏失去了一些東西?這些問題或者我應該在代碼的其他地方看問題嗎?

+4

如何'elements'定義? '矢量元素'? – herohuyongtao

+1

[Should work](http://ideone.com/F4xIWw) – Borgleader

+0

@Borgleader你忘了分享你的'main.cpp'。 :P – herohuyongtao

回答

1

工作正常,當我嘗試:

http://ideone.com/sgOtc5

#include <iostream> 
#include <string> 
#include <vector> 

int main() 
{ 
    int size = 3; 
    std::vector<std::string> *elements; 
    elements = new std::vector<std::string>(size); 

    (*elements)[0] = "this"; 
    (*elements)[1] = "works"; 
    (*elements)[2] = "fine"; 

    std::string x = elements->at(1); 
    std::cout << x << std::endl; 

    std::cout << elements->at(1) << std::endl; 

    x = (*elements)[1]; 
    std::cout << x << std::endl; 

    std::cout << (*elements)[1] << std::endl; 

    return 0; 
} 

輸出:

works 
works 
works 
works 
+0

我很高興聽到語法是正確的。這裏的所有回覆似乎都指出了我程序中的一些奇怪的錯誤。 – Bob

+0

最有可能的,但你沒有顯示填充或使用向量的代碼,所以沒有人能告訴你實際是什麼錯誤。 –

相關問題