下面是c++中的两个代码片段:
some_previously_defined_array_object_class object1;
int nrows = object1.rows;
int ncols = object1.cols;
int objectsize = object1.size();
int some_metric1;
int some_metirc2;
some_metric1 = nrows*ncols+2/(3+ncols);
some_metric2 = objectsize+0.5*ncols;
// Other computations involving
我仍然不太确定什么时候按值返回是一个好主意在C++和什么时候不。在下面的情况下,可以吗?
vector<int> to_vec(const Eigen::MatrixXi& in){
vector<int> out;
// copy contents of in into out
return out;
}
Eigen::MatrixXi to_eigen(const vector<int>& in){
Eigen::MatrixXi out;
// copy contents of in into
这个程序出了什么问题?
#include <memory>
#include <vector>
int main()
{
std::vector<std::unique_ptr<int>> vec;
int x(1);
std::unique_ptr<int> ptr2x(&x);
vec.push_back(ptr2x); //This tiny command has a vicious error.
return 0;
}
错误:
In file included from
我目前正在使用Kubuntu19.04Kate18.12.3和g++ (Ubuntu8.3.0-6ubuntu1) 8.3.0自学C++
在Kate的Tools/Mode/sources菜单中,我选择了C++或ISO C++。
我编写了一个小程序,其目标是修复上一个练习中出现的故意内存泄漏。这是我的代码。
/* Fix the program from Exercise 6. */
#include <iostream>
int myFunction(int * pInt);
int main()
{
int myVar;
int * pInt = new i
我有一个123MB的大int数组,它基本上是这样使用的:
private static int[] data = new int[32487834];
static int eval(int[] c)
{
int p = data[c[0]];
p = data[p + c[1]];
p = data[p + c[2]];
p = data[p + c[3]];
p = data[p + c[4]];
p = data[p + c[5]];
return data[p + c[6]];
}
使用不同的c调用eval()的次数很多(~50
我知道在c++中变量有块作用域,例如,下面的代码在C++中工作
void foo(){
int a = 0;
for(int i = 0; i < 10; ++i){
int a = 1; //re-define a here.
}
}
但是这个代码片段在java中不起作用,它报告“重复的局部变量a",这是否意味着java变量没有块作用域?
免责声明: Java学习C++。
当您返回一个保存在已删除动态对象中的字符串时,会发生什么情况?
下面是一个相当标准的去队列方法,我想让它正常工作,而不使用模板数据的指针,这是我测试用例中的一个字符串。
Ubuntu13.04上的g++给了我分段故障。在最新的OSX上,我的数据被破坏了。
是我的代码还是C++?
// remove an object from the front of the queue.
// the test case instantiate T as string.
// front->data is assigned an static string.
tem
我对C# (C++程序员主要是以Java作为强第二语言,还有一些是我使用的较少)还是很陌生的;我使用的是带有统一的C#,但我有一个似乎与C#相关的问题,而不是团结。
我在某种程度上转向了函数式编程,即不是
// C++
int someFunction(int a) {
int someCalculatedValue = a * a;
someCalculatedValue /= 2;
return someCalculatedValue * 3;
}
我会做这样的事
// Again C++
int someFunction(int a) {
const in
在空间和时间利用的数量和效率方面,C++之间是否存在差异?答案是否取决于编译器?
int main() {
int a, b = 0;
doSomething1(b);
a = 9;
doSomething2(a);
return 0;
}
int main() {
int a = 0, b = 0;
doSomething1(b);
a = 9;
doSomething2(a);
return 0;
}
int main() {
int b = 0;
doSomething1(b);
in
我一直在研究一些java原语集合(、、),并注意到有时类变量被声明为final局部变量的模式。例如:
public void forEach(IntIntProcedure p) {
final boolean[] used = this.used;
final int[] key = this.key;
final int[] value = this.value;
for (int i = 0; i < used.length; i++) {
if (used[i]) {
p.apply(key[i],value[i
假设我有以下C++类:
class Foo
{
double bar(double sth);
};
double Foo::bar(double sth)
{
double a,b,c,d,e,f
a = b = c = d = e = f = 0;
/* do stuff with a..f and sth */
}
函数bar()将在一个循环中被调用数百万次。显然,每次调用它时,都必须分配变量a..f。通过将变量设置为Foo类的成员a..f并在函数的入口点对其进行初始化,是否可以获得任何性能?另一方面,通过这个->,a..f的值将被解除引用,所以我想知道这是否实际
我对在C++中返回const引用感到困惑。所以我写了下面的代码块,并在gnu c++和visual studio上进行了测试。找到不同的答案。谁能说出在C++中使用返回常量引用的好处以及在不同的编译器上导致不同行为的原因。
#include <iostream>
using namespace std;
class A
{
public:
A(int num1, int num2):m_num1(num1), m_num2(num2)
{
cout<<"A::A"<<endl;
}
c
根据任何一本关于c++的书,c++的任何未初始化的局部变量都将包含一个垃圾值。但是,请查看以下程序:
#include<iostream>
using namespace std;
float a;
class A
{
public:
float b;
};
int main()
{
float c;
static float d;
static float e = 0;
A f;
cout<<"\n global a : "<<a<<"\n class variable b : "<<f.b;
cou
struct node
{
Item item; node *l, *r;
node(Item x) {item = x; l = 0; r = 0;}
};
typedef node* link;
link max(Item a[], int l, int r)
{
int m = (l+r)/2;
link x = new node(a[m]);
if (l==r) return x; // return a local pointer
x->l = max(a, l, m);
x-r = max(a, m+1, r);
It