我必须比较存储在向量中的两个字符串。比较在使用 mingw-g++ 编译器(版本 4.4.1)的 Windows 中运行良好。
但是当我尝试在运行 g++ 4.7.2 版的 Ubuntu 中做同样的事情时,我遇到了奇怪的问题。我在下面列出了它们:
当我尝试单独打印元素时,它们给出了正确的输出并且两个字符串都是相同的。
但是当我尝试使用 == 运算符或 strcmp() 比较它们时,即使它们相同,它们也不相等。
当我尝试打印上面比较的元素时,某个字符串正在替换第一个字符串的值。代码如下。理想情况下,不应该执行 if 循环,但它仍在执行并打印一些垃圾值而不是 v1[i]。
vector<string> v1 = r1->GetSchema().GetAttrTypes(); vector<string> v2 = r2->GetSchema().GetAttrTypes(); for(i=0; i<v2.size();i++) if(v1[i] != v2[i]) cout << v1[i] << " " << v2[i] << " awdsd" << endl;
我不知道如何搜索这些错误。我从同一个文件中获取字符串并存储在 Windows 和 Ubuntu 中的向量中。
编辑:我在这里附上部分代码。右侧的函数返回字符串向量。我不能粘贴上面类的代码,因为它是非常大的代码。