据我了解,如果我不存储指针,C++中的所有内容都会被复制,这可能导致性能不佳(忽略我的示例的简单性)。所以我想我把我的对象存储为我的向量中的指针而不是字符串对象,这对性能更好吗? (假设我有很长的字符串和很多)。C++向量和指针
当我尝试遍历我的字符串指针的向量的问题是我不能从中提取的实际值
string test = "my-name";
vector<string*> names(20);
names.push_back(&test);
vector<string*>::iterator iterator = names.begin();
while (iterator != names.end())
{
std::cout << (*iterator) << ":" << std::endl;
// std::cout << *(*iterator); // fails
iterator++;
}
见注释行,我没有问题,在接受字符串指针。但是,当我尝试获取字符串指针值我得到一个错误(我找不到什么兴奋的错误是,但程序只是失败)。
我也尝试存储(迭代器)在一个新的字符串变量,但它没有帮助?
@mads失败?有例外吗?不编译?测试仍在范围内? – Lou 2011-04-12 15:51:30
空指针和指向本地作用域变量的指针?难怪你有问题得到它们指向的实际值 – 2011-04-12 15:54:43
你是否对你的代码进行了剖析并证明这是一个严重的问题?还是你在微观优化prematureley? – 2011-04-12 15:57:25