我有一个 vector
假设我有一个包含 N 个元素的向量,但是这个向量中最多有 n 个元素具有有意义的数据.一个更新线程更新第 n 个或第 n+1 个元素(然后设置 n = n+1),还会检查 n 是否太接近 N 并在必要时调用 vector::resize(N+M).更新
我可以在 C++ 中创建一个 unordered_set 向量吗?像这样
std::unordered_set<std::vector<int>> s1;
我有大量但可能不同的对象同时写入.我想用互斥锁保护该访问.为此,我以为我使用了 std::vector,但这不起作用,因为 std::mutex 没有副本或移动构造函数,而 std::vector::resize() 需要.
我遇到了一个小问题.我有一个结构体,它有一个向量.请注意,向量在每次迭代中都是动态的.现在,在特定的迭代中,如何将包含大小为 n 的向量的结构存储到二进制文件中?
我有一个包含很少非相邻重复项的向量.
举一个简单的例子,考虑:
2 1 6 1 4 6 2 1 1
我是第一次使用 STL 库中的向量类.我应该如何添加到向量数组的特定行?
struct x{
我想对向量中的项目重新排序,使用另一个向量来指定顺序:
charA[]= { \'a\',\'b\',\'c\' };
之前有一些关于这个问题的问题;我的理解是调用 std::vector::erase 只会使位于被擦除元素之后的迭代器无效.但是,擦除元素后,该位置的迭代器是否仍然有效(当然,前提是擦除后它不指向 end())?
我是一名编程学生,对于我正在进行的一个项目,我必须做的事情之一是计算 int 值向量的中值.我将仅使用 STL 中的排序函数和向量成员函数(例如 .begin()、.end() 和 .size>)来执行此操作().
为什么 pop_back() 没有返回值?我在谷歌上搜索过这个,发现它更有效.这是在标准中这样做的唯一原因吗?
为了安全地清理std::vector 或std::list 的指针,你能想到的最短的C++ 块是什么?(假设您必须在指针上调用 delete ?)
我正在处理用户定义数量的位(我持有一个三维位数组,因此大小呈三次增加 - 假设不少于 512 位),并且需要单独翻转它们.现在,就在计算机上,我使用 bool 类型,因为内存不是问题.我确实计划将来将代码移至微控制器,
使用默认构造函数创建的 std::vector 的 capacity() 是多少?我知道 size() 为零.我们可以声明默认构造的向量不会调用堆内存分配吗?
如何创建二维矢量?我知道在二维数组中,我可以这样表达:
a[0][1]=98;
a[0][2]=95;
a[0][3]=99;
目标是访问字符串向量的第 n 个\"元素,而不是使用 [] 运算符或at\"方法.据我了解,迭代器可用于在容器中导航,但我以前从未使用过迭代器,而且我正在阅读的内容令人困惑.
这是我的交换函数:
template <typename t>
void swap (t& x,t& y)
{
t temp = x;
x = y;
y = temp;
我知道 std::vector 在内部连续地存储它的数据(除非它是 std::vector),都在旧的中>C++03 标准和新的C++11.
我发现这个 C++ 代码:
vector<int> a;
a.push_back(1);
a.push_back(2);
vector<int>::iterator it = a.begin();
我正在尝试用 C++ 制作一个可以存储 3 种不同数据类型的向量.我不想使用 boost 库.类似的东西: