我目前正在开发一个项目,我们正在使用运行Linux的Moxa EM-1220-LX,使用C ++对其进行编程。在开发过程中,我遇到了一个古怪的错误。
我有以下代码:
std::string vector_to_string(std::vector<int> vec) {
std::stringstream ss;
for (int i = 0; i < vec.size(); i++) {
ss << vec[i] << ".";
}
return ss.str();
}
void print_string(std::string text) {
std::cout << text << "\n";
}
std::vector<int> local_vector;
local_vector.push_back(123);
local_vector.push_back(456);
local_vector.push_back(789);
//Case 1: Prints 456.789.
print_string(vector_to_string(local_vector));
//Case 2: Prints 123.456.789.
std::string temp = vector_to_string(local_vector);
print_string(temp);
任何人都知道为什么在案例1中移除了向量中的第一个条目,但在案例2中工作正常吗?
答案 0 :(得分:0)
我无法通过编译问题中的代码来重现您的问题。 Perphaps你在代码中的其他地方有一个错误导致堆/堆损坏。
旧答案:你似乎有一个错误:
docker run -d --link dtbase -e MYSQL_USERNAME=root -e MYSQL_ROOT_PASSWORD=123 --name phpmyadminnew -p 80 corbinu/docker-phpmyadmin
中间线不应该是for (int i = 0; i < vec.size(); i++) {
ss << vec << ".";
}
吗?这可以很好地解释为什么你的矢量打印不正确。