小编sam*_*tha的帖子

如果成功或失败,如何返回std :: copy的值?

std::copy用来将对象复制std::deque到文件中.代码工作正常但我需要检查复制是否成功,因此我需要设置标志或者抛出异常.

我用谷歌搜索但无法找到解决方法如何检查是否std::copy已成功将值复制到文件中.

请有人请点亮它.

c++ std

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

保持硬链接和符号链接,创建tar球时的权限,同时解压缩tarball

任务:提供远程升级系统或添加新功能的工具.

我应该做什么创建目标机器当前环境的备份,如果在任何阶段升级失败,则恢复到原始环境.

说我的目录结构是这样的:

/home/user/project1/....bla bla

项目1包含符号链接,硬链接,软件和固件的可执行文件等.

我的困难

我应该使用策略1还是2?

  1. 我应该复制整个当前环境并在升级失败时还原.

    示例 - > cp -p -r/home/user/project1/*/home/user/project1_backup /

    如果升级失败 - >

    mv/home/user/project1_backup// home/user/project1

  2. 如果升级失败,我应该压缩整个环境并解压缩它.为了创建tar球,我对保留符号链接和硬链接持怀疑态度......同时解读它.

有些人可以提供具体的答案,我应该遵循哪种方法,如果我采用焦油球方法,那将是什么bash命令.

据我所知 tar -cvfz,创建tar gunzip 不会保留链接和权限,同样在解开tar球时也是如此.请点亮一些?

linux bash

6
推荐指数
1
解决办法
2万
查看次数

通过putty.exe在Windows命令行上运行shell脚本(带参数)

我需要执行一个批处理脚本,它在Linux框内远程运行shell脚本.

现在,一切正常,但如果我尝试向shell脚本提供命令行参数,脚本将无法执行.

工作 - >前

C:\ temp\Testing> putty.exe -pw"blabla"-m"test-script.sh"bob@10.20.110.57

但是,如果我试图提供参数,它就无法执行.例:

不工作

C:\ temp\Testing> putty.exe -pw"blabla"-m"test-script.sh ok-1 "bob@10.20.110.57

 where ok-1 = command line argument for local script test-script.sh
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

linux bash putty batch-file

4
推荐指数
1
解决办法
2万
查看次数

从整数值返回固定长度的std :: string

问题 - >将固定长度字符串返回到std :: string*.
目标机器 - > Fedora 11.

我必须派生一个函数,它接受整数值并将固定的长度字符串返回给字符串指针 ;
例如 - > int value的范围是0到-127

所以对于int值0 - >它显示000
为值-9 - >它应该返回-009
表示值-50 - >它应该返回-050
表示值为-110 - >它应该返回-110

所以简而言之,在所有情况下,长度应该相同.

我做了什么:我已经根据下面的要求定义了这个功能.

我需要帮助的地方:我已经派生了一个函数,但我不确定这是否是正确的方法.当我在Windows端的独立系统上测试它时,exe有时会停止工作,但是当我在Linux机器上包含这个功能和整个项目时,它可以完美地工作.

    /* function(s)to implement fixed Length Rssi */
 std::string convertString( const int numberRssi, std::string addedPrecison="" )
 {
     const std::string         delimiter   =   "-";
                stringstream   ss;

     ss  << numberRssi ;
     std::string tempString = ss.str();
     std::string::size_type found = tempString.find( delimiter );
     if( found == std::string::npos )// not found
     { …
Run Code Online (Sandbox Code Playgroud)

c++ string stringstream

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

复制/插入矢量

我正在阅读Accelerated C++,我对下面发布的问题提出的建议很少.

  1. 这段代码有什么作用?

    vector<int>u(10,100)    
    vector<int>v;    
    copy(u.begin(), u.end(), v.end());
    
    Run Code Online (Sandbox Code Playgroud)
  2. 提供2种可能的方法来纠正程序,并列出其优缺点.

第一部分非常简单,但我在第二部分需要帮助.我提供了3种方法,我想知道是否有更多可能的解决方案.

另外,我不确定我的方法的优点和缺点.我试过了,所以请告诉我你的意见.


copy()

std::vector<int> u(10, 100);
std::vector<int> v;
std::vector<int> w ;
std::vector<int> x ;
std::copy(u.begin(), u.end(), back_inserter(v)); // 1st way of doing
Run Code Online (Sandbox Code Playgroud)

好处

  • std::copy() 不会更改迭代器的值
  • 由于参数std::copy()不依赖于特定容器,因此代码可以与不同的容器一起使用

缺点

  • std::back_inserter() 仅适用于顺序容器,因此不能与地图一起使用
  • 将错误的迭代器值分配给第三个参数std::copy()不会导致编译器错误,但程序可能表现不同

insert()

w.insert(w.end(), u.begin(), u.end() );
Run Code Online (Sandbox Code Playgroud)

好处

  • insert() 可与大多数容器一起使用

缺点

想不到任何.


push_back()

for ( std::vector<int>::const_iterator it = w.begin(); it != w.end(); ++it )
{
    x.push_back( *it );
}
Run Code Online (Sandbox Code Playgroud)

好处

不能想到任何.

缺点

  • std::copy()或相比较慢vector::insert().

我的方法是否正确?还有哪些其他可能的解决方案?

c++ copy insert vector

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

C++访谈继承之谜

可能重复:
构造函数中的C++虚函数
调用构造函数内的虚函数

在采访中询问了这个问题.

我想我已经正确回答了第一部分但不确定第二部分.事实上,我对第二部分毫无头绪.

  1. 以下代码生成什么输出?为什么?
  2. 如果使A :: Foo()成为纯虚函数,它会产生什么输出?

当我尝试在我的编译器上运行相同的问题virtual void foo() = 0;时抛出错误"未定义引用`A :: Foo()'"

#include <iostream>

using namespace std;

class A     
{    
public:       
    A()             
    {
        this->Foo();
    }
    virtual void Foo() 
    {
        cout << "A::Foo()" << endl;
    }
};

class B : public A      
{     
public:     
    B()      
    {
        this->Foo();      
    }
    virtual void Foo() 
    {
        cout << "B::Foo()" << endl;
    }
};

int main(int, char**)
{
    B   objectB;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ inheritance

2
推荐指数
2
解决办法
2906
查看次数

const字符串在最后附加时不起作用

可能重复:
连接两个字符串文字

为什么这不起作用?

const std::string exclam = "!";          
const std::string message = "Hello" + ", world" + exclam;
Run Code Online (Sandbox Code Playgroud)

但这很好用

const std::string exclam = "!";       
const std::string message = exclam +
"Hello" + ", world" ;     
Run Code Online (Sandbox Code Playgroud)

请向我解释.

谢谢

c++ string

1
推荐指数
1
解决办法
157
查看次数

使用模式匹配删除当前目录中的所有文件夹

我需要删除当前目录中以"foo"开头的所有文件夹,后跟日期
,例如我们有

  1. foo20120620
  2. foo20120513
  3. foob​​labla

我可以成功删除一个与当前日期
示例匹配的文件夹

set FOO_FOLDER=%CD%\foo%datetimef%      

echo Y | rd /s/q %FOO_FOLDER%     
Run Code Online (Sandbox Code Playgroud)

但是我无法删除所有以foo开头的文件夹.

我尝试过类似的东西

set OLD_PATTERN="%CD%\foo"     
del %OLD_PATTERN%*
Run Code Online (Sandbox Code Playgroud)

我用Google搜索并尝试跟踪本论坛中已经提出的一些问题,但这些问题对我没什么帮助.

任何建议对我都有很大帮助.
必须在Windows端批处理脚本.

windows batch-file

1
推荐指数
1
解决办法
5055
查看次数

标签 统计

c++ ×5

bash ×2

batch-file ×2

linux ×2

string ×2

copy ×1

inheritance ×1

insert ×1

putty ×1

std ×1

stringstream ×1

vector ×1

windows ×1