我对 C++ 比较陌生,我尝试做一些研究,但是在网上搜索时,我主要遇到的是 C 数组而不是std::array. 将 std::array 元素附加到 std::vector 并将std::array元素插入到 a中的最有效方法是std::vector什么?我应该使用 STL 函数,例如std::copy? 我目前正在使用 C++17,MinGW64。
目前使用 WSL2、g++、以及-std=c++20 -Wall -Wextra -Wvla -Weffc++ -Wsign-conversion -Werror.
在我正在构建的程序中,因为我使用了多个 STL 容器,例如std::vector、std::array、std::string等,所以我遇到了许多涉及size_t(from.size()或.length()) 和有符号值之间的整数算术或逻辑比较的情况。
为了避免发生错误,我已将值(“我认为”通常应始终为正)更改为无符号值,方法是更改变量定义或使用static_cast<size_t>()(这使我的代码行特别长)。但现在我遇到越来越多的下溢错误。
我是否应该将所有变量更改回有符号类型并使用断言来查看它们是否变为负数?有哪些有效的方法可以在有符号整数和无符号整数(尤其是.size())之间进行整数算术和逻辑比较?