标签: stdvector

C++ 中 Vector 的 std::upper_bound 和 std::lower_bound 的复杂度是多少?

std::lower_bound和函数的复杂度是多少std::upper_bound

我知道万一std::set<int>是这样log(n),但我不知道std::vector<int>

我正在使用向量 和 来实现最长递增子序列std::lower_bound

这段代码的复杂度是多少?

int LIS2(vector<int> a) {
    vector<int> v;
    for (int i = 0; i < a.size(); i++) {
        auto it = lower_bound(v.begin(), v.end(), a[i]);
        if (it != v.end()) 
            *it = a[i];
        else 
            v.push_back(a[i]);
    }
    return v.size();
}
Run Code Online (Sandbox Code Playgroud)

c++ stdvector lower-bound upperbound lis

-3
推荐指数
1
解决办法
3251
查看次数

std::vector 的结构是什么?

我已经用递归方式打印向量的所有元素,但它返回无意义!它抛出了一个非常奇怪的异常:

Exception thrown: read access violation.
std::vector<int,std::allocator<int> >::operator[](...) returned nullptr.
Run Code Online (Sandbox Code Playgroud)

它输出: 12358000

这是代码。我犯了什么错误?

#include <iostream>
#include <vector>
using namespace std;

int printVec(vector<int>* foo) {
    if ((*foo).empty())
        return 0;
    else {
        cout << (*foo)[0];
        printVec(foo + 4);
    }
}
int main() {
    vector<int> ref{ 1,2,3,4,5,6,7,8,9,0 };
    printVec(&ref);
}
Run Code Online (Sandbox Code Playgroud)

c++ recursion stdvector

-4
推荐指数
1
解决办法
88
查看次数

分配有(n,0)的std :: vector <int>不可迭代

请考虑以下代码:

#include <vector>
#include <iostream>


void monitor_vector(std::vector<int> myV)
{
  std::vector<int>::iterator it = myV.begin();
  std::cout << "Vector size: " << myV.size() << std::endl;
  while (*it)
  {
    std::cout << "Element " << it-myV.begin() << ": " << *it << std::endl;
    it++;
  }
}

int main()
{
  std::vector<int> myVector(4,1);
  monitor_vector(myVector);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

基本上,我创建了一个std::vector<int>包含4元素的元素,并分配每个元素1.当我执行这段代码时,一切都很好.输出显示每个元素.

但是,当我用这一行执行它时

  std::vector<int> myVector(4,1);
Run Code Online (Sandbox Code Playgroud)

替换为此行:

  std::vector<int> myVector(4,0);
Run Code Online (Sandbox Code Playgroud)

我看不到任何输出.输出是:

yilmazali@yilmazali:~/cpp_practice$ g++ -o la vector_practice.cpp
yilmazali@yilmazali:~/cpp_practice$ ./la
Vector size: 4
yilmazali@yilmazali:~/cpp_practice$ 
Run Code Online (Sandbox Code Playgroud)

为什么忽略具有默认整数值的元素?他们仍然是那里的成员std::vector.

谢谢你的时间,阿里

c++ vector stdvector

-5
推荐指数
1
解决办法
63
查看次数

使用一个输入参数计算向量的平均值并找到以下向量的平均值:[ 1 2 3 4 5 6 ]

我怎样才能用javascript解决这个问题?给我一个更好的解决方案。谁来帮帮我。我对向量感到困惑。它的输入需要一个参数

#include <iostream>
#include <stream>
#include <vector>

using namespace std;

int main() {

ifstream numbers;
numbers.open("G:\\numbers.dat"); // just a file of 10 integers.
int i;
vector<float> vectors;

while(numbers >> i) {
    vectors.push_back(i);
}

for(int n=0; n < vectors.size(); ++n ){
    cout << vectors[n] << endl;
}

int avg;
for(int k=0; k < vectors.size(); ++k){
    // not sure what to put here basically.
    cout << avg << endl;
}


numbers.close();

return 0;
Run Code Online (Sandbox Code Playgroud)

}

javascript c++ arrays vector stdvector

-5
推荐指数
1
解决办法
223
查看次数

向量的增长功能如何运作?

int main () {
    std::vector <int> elements;
    elements.push_back (1);
    elements [10000] = 102;
    std:: cout << elements [10000];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码如何工作?据我所知,矢量的增长率为1.5 - 2倍.那么第10000个元素如何存储在这里?这里的预期行为不是"分段错误"吗?但以上运行成功.

c++ stdvector c++14

-6
推荐指数
1
解决办法
108
查看次数

c ++中2d向量的问题

有没有相关的问题

vector< vector<int> > v(m, vector<int>(n));
Run Code Online (Sandbox Code Playgroud)

写得更安全:

vector< vector<int> > v(m);
for (size_t i=0; i<m; i++)
    v[i].resize(n);
Run Code Online (Sandbox Code Playgroud)

c++ stdvector

-6
推荐指数
1
解决办法
97
查看次数

如何定义矢量

我在一个类的头文件中有以下内容:

#include <vector>
#include <math.h>
Run Code Online (Sandbox Code Playgroud)

在类描述中,我有以下受保护的成员:

vector<Point2D>         samples;
Run Code Online (Sandbox Code Playgroud)

Point2D被定义为一个类

在编译期间我遇到很多错误(C2143,C4430和C2238)

有任何想法吗?

c++ stdvector

-8
推荐指数
1
解决办法
175
查看次数

标签 统计

c++ ×7

stdvector ×7

vector ×2

arrays ×1

c++14 ×1

javascript ×1

lis ×1

lower-bound ×1

recursion ×1

upperbound ×1