C++中的矢量在Windows和Ubuntu中的表现有所不同
Vectors in C++ are behaving differently in Windows and Ubuntu
我必须比较存储在向量中的两个字符串。比较在使用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中的向量中。
编辑:我将在此处附加部分代码。函数右侧返回字符串的矢量。我不能粘贴在classe的代码之上,因为它是非常大的代码。
问题必须在:
r1->GetSchema().GetAttrTypes();
这个函数一定是在摆弄它的std::string
是如何创建的。你能给我们看看代码吗?
好吧,一切都很好,除了我正在读取输入字符串的文件。由于我在windows上创建了这个文件,它的行尾与Ubuntu中的不同。
在Ubuntu中,我不得不转换我正在读取的文本文件输入Unix模式。之后一切都好了。
我不知道我怎么会错过这一点。
感谢您的意见。
相关文章:
- 在Ubuntu 16.04上安装Cilk时出现问题
- 如何在Ubuntu中使用cmake设置qt4
- 链接阶段在Ubuntu上失败,但在MacOS上失败
- 无法将 GLFW 库与 Ubuntu 18.04 上的头文件链接
- GCC和Clang在与__builtin_constant_p相关的static_assert方面有所不同
- 无法在Ubuntu上将共享库与Eclipse链接
- 树莓上的 Libtorch 无法加载 pt 文件,但在 ubuntu 上工作
- 无法安装 R 包 "nloptr"(Ubuntu 16.04 上的 R3.6.2) - C++编译器问题
- 使用 ubuntu 终端在 c++ 上运行线程类的问题
- 如何在 Ubuntu 上安装 OpenCV for C/C++
- 估计 Ubuntu C++内存使用情况
- 在 Ubuntu 中创建自动安装程序
- 分段 Linux Ubuntu 中的 g++ 错误,但在 Windows 中的 g++/MingW 中,在 C++ 中打
- OpenGL 在 VMWare Fusion 版本 10.1.3 上安装的虚拟机 (Ubuntu 16.04) 上崩溃
- 在 ubuntu 上安装 node js pulsar 客户端
- 在 Ubuntu 18.04 上编译 GLSL 着色器时"不支持 GLSL 3.30"?
- 这是 ubuntu 16.04 中的 gdb 错误吗?
- 生成文件:6:目标'all'的配方在 Ubuntu-16.04 上失败
- LinuxdeployQT 今天如何创建 Appimage,自 ubuntu 16.04 发布以来,它可以在每个 Lin
- C++中的矢量在Windows和Ubuntu中的表现有所不同