Tag: 向量

C ++ STLvector:从​​索引获取迭代器?

所以,我写了一堆通过index []访问stl向量中的元素的代码,但现在我只需要复制一个向量块。 它看起来像vector.insert(pos, first, last)是我想要的function…除了我只有第一个和最后一个整数。 有没有什么好的方法可以得到这些值的迭代器?

如何在C ++中初始化一个向量

可能重复: C ++:用硬编码元素初始化STL向量的最简单的方法 我想像在数组的情况下一样初始化vector。 例 int vv[2] = {12, 43}; 但是当我这样做的时候, vector<int> v(2) = {34, 23}; 要么 vector<int> v(2); v = {0, 9}; 它给出了一个错误: 期望在“{”令牌之前的主expression式 和 错误:预期','或';' 在'='标记之前 分别。

如何访问vector中的最后一个值?

假设我有一个嵌套在一个或两个数据框中的向量。 是否有一个快速和肮脏的方式来访问最后一个值,而不使用length()函数? ala PERL的$#特别var? 所以我想像这样的东西: dat$vec1$vec2[$#] 代替 dat$vec1$vec2[length(dat$vec1$vec2)]

在C ++中std :: vector与std :: array

C ++中std::vector和std::array有什么区别? 什么时候应该比另一个更受欢迎? 各有什么优点和缺点? 我所有的教科书都列出了他们是如何相同的。

计算vector中x值的元素数量

我有一个数字vector: numbers <- c(4,23,4,23,5,43,54,56,657,67,67,435, 453,435,324,34,456,56,567,65,34,435) 我怎么能R计数值x出现在向量中的次数?

R函数用于testing向量是否包含给定元素

在R中,你如何testing一个向量,看它是否包含给定的元素?

用vector :: iterator或at()迭代STLvector的速度会更快吗?

在性能方面,什么工作会更快? 有区别吗? 它是依赖于平台吗? //1. Using vector<string>::iterator: vector<string> vs = GetVector(); for(vector<string>::iterator it = vs.begin(); it != vs.end(); ++it) { *it = "Am I faster?"; } //2. Using size_t index: for(size_t i = 0; i < vs.size(); ++i) { //One option: vs.at(i) = "Am I faster?"; //Another option: vs[i] = "Am I faster?"; }

C ++删除vector,对象,空闲内存

我完全混淆了删除C ++中的东西如果我声明一个对象数组,如果我使用clear()函数。 我能确定内存是否被释放? 例如 : tempObject obj1; tempObject obj2; vector<tempObject> tempVector; tempVector.pushback(obj1); tempVector.pushback(obj2); 我可以安全地打电话清除所有的内存? 或者我需要迭代一个一个地删除? tempVector.clear(); 如果这个场景被改变为对象的指针,答案会和上面一样吗? vector<tempObject> *tempVector; //push objects…. tempVector->clear();

按降序排列vector

我应该使用 std::sort(numbers.begin(), numbers.end(), std::greater<int>()); 要么 std::sort(numbers.rbegin(), numbers.rend()); // note: reverse iterators 按降序排列vector? 一种方法或另一种方法有什么好处或缺点?

STLvector和线程安全

假设我有一个N个元素的向量,但是这个向量的n个元素都有有意义的数据。 一个更新程序线程更新第n个或第n + 1个元素(然后设置n = n + 1),还检查n是否太接近于N,并在必要时调用vector :: resize(N + M)。 更新之后,线程调用多个子线程读取第n个数据并进行一些计算。 确保子线程永远不会更改或删除数据(实际上没有数据被删除),更新程序在完成更新后立即调用子线程。 到目前为止,没有发生任何问题,但是我想问一下如果在上一次更新之前还有一些子工作线程,向量重新分配给更大的内存块时是否会出现问题。 或者在这种multithreading的情况下使用向量是安全的,因为它不是线程安全的? 编辑:因为只有插入发生时更新调用vector::resize(N + M,0),有没有任何可能的解决scheme,我的问题? 由于STL向量的良好性能,我不愿意用一个可locking向量来replace它,或者在这种情况下是否有任何高性能,已知和无锁向量?