我有一个包含最小和最大3个范围的向量,即
low<-1,2,3
high<-2,3,4
Run Code Online (Sandbox Code Playgroud)
代表范围1-2,2-3和3-4
我需要返回包含每个范围中点的第三个向量,即
mid<-1.5,2.5,3.5
Run Code Online (Sandbox Code Playgroud)
有什么快速的方法吗?
我有以下代码,使用g ++运行3秒,在微软编译器运行超过30秒,我不明白...
struct constraint{
int bitline;
int result;
};
// this vector is filled with about 1 milion items
vector<constraint> constraints;
for (int a = 0; a < constraints.size(); ++a)
{
if (a% 100 == 0) cout << a << " "<<endl;
for (int b = a; b < constraints.size(); ++b)
{
int anded = constraints[a].bitline & constraints[b].bitline;
int ored = constraints[a].bitline | constraints[b].bitline;
// a subset of b
if (anded == constraints[a].bitline && constraints[a].result >= constraints[b].result )
{
// …Run Code Online (Sandbox Code Playgroud) 考虑一下我们已经声明了一个这样的字符串:string x;和这样的字符向量:vector<char> x_vec;
我在想是否有任何优势
cout<<x;
Run Code Online (Sandbox Code Playgroud)
过度
for(int i=0;i<x.length();i++)
cout<<x[i];
Run Code Online (Sandbox Code Playgroud)
要么
for(int i=0;i<x_vec.size();i++)
cout<<x_vec[i];
Run Code Online (Sandbox Code Playgroud)
在表现?我的观点是因为我们经常达到我们必须在strings和vectors 之间做出选择的地步.该程序实际处理或接近的第一个示例是否与其他示例不同?
我需要检查在我的向量中元素是否连续排序?
for(i=1; i<=K; i++)
if(v[i]=v[i+1]-1)
Run Code Online (Sandbox Code Playgroud)
如果该语句为真,我想返回最大整数.
恩.4 5 6 7
7
Run Code Online (Sandbox Code Playgroud) 这是编辑过的代码
Run Code Online (Sandbox Code Playgroud)vector<vector<int> > vec; vector<vector<int> >::iterator vit; vector<int>::iterator it; for ( vit = vec.begin(); vit != vec.end(); ++vit) { it = vit->begin(); while(it != vit->end()) { while(it != vit->end()) { if( condition ) { while( condition ) { //going back to certain it //erase an element it = vit->erase(it); } } else ++it; } ++it; } }内在的同时循环回到某一点.链接丢失.擦除元素而不复制迭代器并且在后循环中没有内存泄漏并再次向前移动?
假设我有向量
x <- c(1,2,3,4,5,6)
Run Code Online (Sandbox Code Playgroud)
有什么办法可以随机混合它的元素吗?
或者创建一个向量,它具有从 1 到 6 不重复的整数元素?
vector <char> grid(10);
for (int temp1 = 0; temp1 < grid.size(); temp1++) {
grid[temp1] = 'e';
}
vector <char> ship(3);
for (int temp2 = 0; temp2 < grid.size(); temp2++) {
ship[temp2] = 'f';
}
int location = 2;
return 0;
Run Code Online (Sandbox Code Playgroud)
说我有两个向量:网格和船.我想将船插入网格并根据我选择的位置覆盖原始值.例如,如果位置是2,我应该得到eefffeeeee如果位置是5,我应该得到eeeeefffee
请考虑以下代码:
#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.
谢谢你的时间,阿里
我试图从文件到向量获得大约3百万个字符串.我像这样分配了它
vector<string> *slownikds = new vector<string>;
Run Code Online (Sandbox Code Playgroud)
当我尝试从这样的文件中推回时:
string *line;
while (getline(slownik, *line))
{
*slownikds->push_back(*line);
}
Run Code Online (Sandbox Code Playgroud)
它不起作用.如何从文件"slownik"中推回字符串?
有人可以解释我为什么我可以在int main()中创建一个向量,如下所示:
std:: vector<double> a(20);
Run Code Online (Sandbox Code Playgroud)
但我在创建一个c ++类时不能使用它:
class A
{
std:: vector<double> a(20);
}
Run Code Online (Sandbox Code Playgroud)