为向量中的字符串分配引用

时间:2014-02-27 06:09:01

标签: c++ vector

我有一个存储在向量中的字符串(在本例中为elements)。我想在特定索引处获取字符串,并且存储在名为x的变量中。但是,它似乎没有起作用。以下结果为空白输出:

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

但是,如果我这样做:

cout << elements->at(index);

index处的字符串返回正常。

我的元素定义如下:

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

我在这里遗漏了什么吗?是这些问题还是我应该在代码的其他地方寻找?

1 个答案:

答案 0 :(得分: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